
iOS-এর জন্য Maps SDK আপনার ম্যাপে আকার যোগ করার জন্য বিভিন্ন উপায় অফার করে। নিম্নলিখিত আকারগুলি কাজ করে:
- পলিলাইন হল সংযুক্ত লাইন সেগমেন্টের একটি সিরিজ যা আপনার পছন্দমতো যেকোনও আকার তৈরি করতে পারে এবং ম্যাপে পথ ও রুট চিহ্নিত করতে ব্যবহার করা যেতে পারে।
- পলিগন হল একটি ঘেরা আকৃতি যা ম্যাপে এলাকা চিহ্নিত করতে ব্যবহার করা যেতে পারে।
- বৃত্ত হল পৃথিবীর পৃষ্ঠে একটি বৃত্তের ভৌগোলিকভাবে সঠিক অভিক্ষেপ।
আপনি বিভিন্ন উপায়ে প্রতিটি আকারের চেহারা পরিবর্তন করতে পারবেন।
পলিলাইন
পলিলাইন আপনাকে ম্যাপে লাইন আঁকার অনুমতি দেয়। GMSPolyline
অবজেক্ট লোকেশনের একটি অর্ডার করা সিকোয়েন্সকে উপস্থাপন করে, যা লাইন সেগমেন্টের একটি সিরিজ হিসাবে
প্রদর্শিত হয়। আপনি
GMSStrokeStyle-এর সাহায্যে পলিলাইনের রঙ সেট করতে পারবেন।
পলিলাইন তৈরি করতে, আপনাকে দুই বা তার বেশি পয়েন্ট সহ সংশ্লিষ্ট GMSMutablePath অবজেক্ট তৈরি করে
এর পাথ নির্দিষ্ট করতে হবে।
প্রতিটি CLLocationCoordinate2D পৃথিবীর পৃষ্ঠের একটি বিন্দুকে উপস্থাপন করে। আপনি যে ক্রমে
পাথে পয়েন্ট যোগ করেছেন সেই ক্রম অনুযায়ী পয়েন্টগুলির মধ্যে লাইন
সেগমেন্ট আঁকা হয়। আপনি addCoordinate: বা
addLatitude:longitude: পদ্ধতি ব্যবহার করে পাথে পয়েন্ট যোগ করতে পারবেন।
সুইফ্ট
let path = GMSMutablePath() path.add(CLLocationCoordinate2D(latitude: -33.85, longitude: 151.20)) path.add(CLLocationCoordinate2D(latitude: -33.70, longitude: 151.40)) path.add(CLLocationCoordinate2D(latitude: -33.73, longitude: 151.41)) let polyline = GMSPolyline(path: path)
Objective-C
GMSMutablePath *path = [GMSMutablePath path]; [path addCoordinate:CLLocationCoordinate2DMake(-33.85, 151.20)]; [path addCoordinate:CLLocationCoordinate2DMake(-33.70, 151.40)]; [path addCoordinate:CLLocationCoordinate2DMake(-33.73, 151.41)]; GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
পলিলাইন যোগ করা হচ্ছে
- একটি
GMSMutablePathঅবজেক্ট তৈরি করুন। addCoordinate:বাaddLatitude:longitude:পদ্ধতি ব্যবহার করে পাথে পয়েন্ট সেট করুন।- আর্গুমেন্ট হিসেবে পাথ ব্যবহার করে নতুন
GMSPolylineঅবজেক্ট ইনস্ট্যান্টিয়েট করুন। - প্রয়োজন অনুযায়ী
strokeWidthওstrokeColor-এর মতো অন্যান্য প্রপার্টি সেট করুন। GMSPolyline-এরmapপ্রপার্টি সেট করুন।- ম্যাপে পলিলাইন দেখা যায়।
নিম্নলিখিত কোড স্নিপেট ম্যাপে একটি আয়তক্ষেত্র যোগ করে:
সুইফ্ট
let rectanglePath = GMSMutablePath() rectanglePath.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0)) rectanglePath.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0)) rectanglePath.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2)) rectanglePath.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2)) rectanglePath.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0)) let rectangle = GMSPolyline(path: path) rectangle.map = mapView
Objective-C
GMSMutablePath *rectanglePath = [GMSMutablePath path]; [rectanglePath addCoordinate:CLLocationCoordinate2DMake(37.36, -122.0)]; [rectanglePath addCoordinate:CLLocationCoordinate2DMake(37.45, -122.0)]; [rectanglePath addCoordinate:CLLocationCoordinate2DMake(37.45, -122.2)]; [rectanglePath addCoordinate:CLLocationCoordinate2DMake(37.36, -122.2)]; [rectanglePath addCoordinate:CLLocationCoordinate2DMake(37.36, -122.0)]; GMSPolyline *rectangle = [GMSPolyline polylineWithPath:path]; rectangle.map = mapView;

পলিলাইন সরানো হচ্ছে
আপনি ম্যাপ থেকে পলিলাইন সরাতে পারবেন, এর জন্য আপনার GMSPolyline-এর map
প্রপার্টি nil-এ সেট করতে হবে। বিকল্প হিসেবে, আপনি GMSMapView
clear মেথড কল করে ম্যাপের সব ওভারলে (পলিলাইন ও অন্যান্য আকার সহ)
সরিয়ে দিতে পারবেন।
সুইফ্ট
mapView.clear()
Objective-C
[mapView clear];
পলিলাইন কাস্টমাইজ করা
GMSPolyline অবজেক্ট লাইনের উপস্থিতি নিয়ন্ত্রণ করার জন্য
একাধিক প্রপার্টি প্রদান করে। এটি নিম্নলিখিত বিকল্পগুলি সমর্থন করে:
strokeWidth- স্ক্রিন পয়েন্টে, সম্পূর্ণ লাইনের প্রস্থ। ডিফল্ট হিসেবে ১ সেট করা থাকে। ম্যাপ জুম করা হলে প্রস্থ স্কেল করা হয় না।
geodesic-
YESহলে, এই পলিলাইন এজ জিওডেসিক হিসেবে রেন্ডার করুন। জিওডেসিক সেগমেন্ট পৃথিবীর পৃষ্ঠ বরাবর সবচেয়ে ছোট পথ অনুসরণ করে এবং মার্কেটর প্রজেকশন সহ একটি ম্যাপে বাঁকা রেখা হিসাবে দেখা যেতে পারে। নন-জিওডেসিক সেগমেন্ট ম্যাপে সরলরেখা হিসেবে আঁকা হয়। ডিফল্ট হিসেবেNOসেট করা থাকে। spans- পলিলাইনের এক বা একাধিক সেগমেন্টের রঙ নির্দিষ্ট করতে ব্যবহার করা হয়। স্প্যান
প্রপার্টি হল
GMSStyleSpanঅবজেক্টের অ্যারে। পলিলাইনের রঙ পরিবর্তন করার জন্যspansপ্রপার্টি সেট করা হল সবচেয়ে ভালো উপায়। strokeColor- একটি
UIColorঅবজেক্ট যা পলিলাইনের রঙ নির্দিষ্ট করে। ডিফল্ট হিসেবেblueColorসেট করা থাকে।spansসেট করা থাকলেstrokeColorপ্রপার্টি উপেক্ষা করা হয়।
নিম্নলিখিত স্নিপেটটি মেলবোর্ন থেকে পার্থ পর্যন্ত একটি মোটা পলিলাইন যোগ করে, সাথে জিওডেসিক ইন্টারপোলেশন।
সুইফ্ট
let path = GMSMutablePath() path.addLatitude(-37.81319, longitude: 144.96298) path.addLatitude(-31.95285, longitude: 115.85734) let polyline = GMSPolyline(path: path) polyline.strokeWidth = 10.0 polyline.geodesic = true polyline.map = mapView
Objective-C
GMSMutablePath *path = [GMSMutablePath path]; [path addLatitude:-37.81319 longitude:144.96298]; [path addLatitude:-31.95285 longitude:115.85734]; GMSPolyline *polyline = [GMSPolyline polylineWithPath:path]; polyline.strokeWidth = 10.f; polyline.geodesic = YES; polyline.map = mapView;
ম্যাপে পলিলাইন যোগ করার পরে সেটি পরিবর্তন করতে, GMSPolyline অবজেক্টটি
ধরে রাখতে ভুলবেন না।
সুইফ্ট
polyline.strokeColor = .blue
Objective-C
polyline.strokeColor = [UIColor blueColor];
পলিলাইনের রঙ পরিবর্তন করা
ম্যাপে পলিলাইনগুলি সেগমেন্টের সিরিজ হিসেবে আঁকা হয়। আপনি spans প্রপার্টি ব্যবহার করে
আলাদা আলাদা সেগমেন্ট বা সম্পূর্ণ লাইনের রঙ পরিবর্তন করতে পারবেন। যদিও
এই প্রপার্টি আপনাকে পলিলাইনের রঙ করার উপর বিস্তারিত নিয়ন্ত্রণ দেয়,
বেশ কিছু সুবিধা রয়েছে যা আপনাকে পুরো লাইনে একটি স্টাইল প্রয়োগ করতে
দেয়।
নিচের স্নিপেটটি spanWithColor: পদ্ধতি ব্যবহার করে পুরো লাইনের রঙ লাল করে দেয়।
সুইফ্ট
polyline.spans = [GMSStyleSpan(color: .red)]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithColor:[UIColor redColor]]];
বিকল্প হিসেবে, আপনার কাছে আগে থেকেই GMSStrokeStyle
অবজেক্টের অ্যাক্সেস থাকলে, আপনি spanWithStyle: পদ্ধতি ব্যবহার করতে পারবেন।
সুইফ্ট
let solidRed = GMSStrokeStyle.solidColor(.red) polyline.spans = [GMSStyleSpan(style: solidRed)]
Objective-C
GMSStrokeStyle *solidRed = [GMSStrokeStyle solidColor:[UIColor redColor]]; polyline.spans = @[[GMSStyleSpan spanWithStyle:solidRed]];
iOS-এর জন্য Maps SDK-এর 1.7 ভার্সনের আগে,
GMSPolyline-এর সম্পূর্ণ রঙ সেট করার জন্য সিঙ্গল প্রপার্টি
strokeColor উপলভ্য ছিল। spans প্রপার্টি strokeColor-এর থেকে বেশি অগ্রাধিকার পায়।
সুইফ্ট
polyline.strokeColor = .red
Objective-C
polyline.strokeColor = [UIColor redColor];
স্টাইল
আপনার অ্যাপ যদি একই স্ট্রোক কালার একাধিকবার প্রয়োগ করে, তাহলে আপনি আবার ব্যবহার করা যায় এমন স্টাইল
সংজ্ঞায়িত করার ক্ষেত্রে এটি উপযোগী বলে মনে করতে পারেন। GMSStrokeStyle অবজেক্ট ব্যবহার করে
পলিলাইন স্টাইল নির্দিষ্ট করা হয়। স্ট্রোক স্টাইল সলিড রঙ অথবা এক রঙ থেকে অন্য রঙে গ্রেডিয়েন্ট হতে পারে। আপনি কোনও স্টাইল তৈরি করার পরে,
spanWithStyle: পদ্ধতি ব্যবহার করে সেটি GMSStyleSpan-এ প্রয়োগ করতে পারবেন।
সুইফ্ট
// Create two styles: one that is solid blue, and one that is a gradient from red to yellow let solidBlue = GMSStrokeStyle.solidColor(.blue) let solidBlueSpan = GMSStyleSpan(style: solidBlue) let redYellow = GMSStrokeStyle.gradient(from: .red, to: .yellow) let redYellowSpan = GMSStyleSpan(style: redYellow)
Objective-C
// Create two styles: one that is solid blue, and one that is a gradient from red to yellow GMSStrokeStyle *solidBlue = [GMSStrokeStyle solidColor:[UIColor blueColor]]; GMSStyleSpan *solidBlueSpan = [GMSStyleSpan spanWithStyle:solidBlue]; GMSStrokeStyle *redYellow = [GMSStrokeStyle gradientFromColor:[UIColor redColor] toColor:[UIColor yellowColor]]; GMSStyleSpan *redYellowSpan = [GMSStyleSpan spanWithStyle:redYellow];
পলিলাইনের শেষ পর্যন্ত অথবা নতুন স্টাইল সেট না করা পর্যন্ত span-এর স্টাইল চলতে থাকবে। আপনি একটি পলিলাইনের spans
প্রপার্টিকে একটি GMSStyleSpan-এ সেট করে পুরো লাইনের রঙ পরিবর্তন করতে পারেন। উদাহরণটি
দেখায় যে কীভাবে পলিলাইনের পুরো দৈর্ঘ্য জুড়ে একটি গ্রেডিয়েন্ট প্রয়োগ করতে হয়।
সুইফ্ট
polyline.spans = [GMSStyleSpan(style: redYellow)]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithStyle:redYellow]];
আলাদা আলাদা লাইন সেগমেন্টের রঙ পরিবর্তন করা
আপনি যদি আপনার পলিলাইনের প্রতিটি সেগমেন্ট আলাদাভাবে স্টাইল করতে চান, তাহলে আপনি GMSStyleSpan অবজেক্টের একটি অ্যারে তৈরি করে এবং এটি spans প্রপার্টিতে পাস করে তা করতে পারেন। ডিফল্ট হিসেবে, অ্যারের প্রতিটি আইটেম সংশ্লিষ্ট লাইন সেগমেন্টের
রঙ সেট করে। অ্যারেতে লাইনের সেগমেন্টের চেয়ে বেশি এলিমেন্ট থাকলে, অতিরিক্ত এলিমেন্ট উপেক্ষা করা হবে। অ্যারেতে কম
এলিমেন্ট থাকলে, শেষ GMSStyleSpan লাইনের বাকি অংশের
রঙ বর্ণনা করে।
আপনার পলিলাইন বরাবর উচ্চতা বা গতির মতো পরিবর্তনগুলি নির্দেশ করতে আপনি রঙের ব্লক এবং/অথবা গ্রেডিয়েন্ট পলিলাইন ব্যবহার করতে পারেন। নিচের স্নিপেটটি একটি পলিলাইনের প্রথম দুটি সেগমেন্টের রঙ লাল করে দেয় এবং লাইনের বাকি অংশটি লাল থেকে হলুদ রঙের গ্রেডিয়েন্ট হয়।
সুইফ্ট
polyline.spans = [ GMSStyleSpan(style: solidRed), GMSStyleSpan(style: solidRed), GMSStyleSpan(style: redYellow) ]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithStyle:solidRed], [GMSStyleSpan spanWithStyle:solidRed], [GMSStyleSpan spanWithStyle:redYellow]];
আপনি spanWithStyle:segments: পদ্ধতি ব্যবহার করে একসাথে একাধিক সেগমেন্টের জন্য স্টাইল সেট করতে পারবেন। যেমন, নিম্নলিখিত কোডটি উপরের কোডের সমতুল্য।
চূড়ান্ত GMSStyleSpan-এর সেগমেন্টের দৈর্ঘ্য সবসময় উপেক্ষা করা হয়
কারণ লাইনের বাকি অংশ বর্ণনা করার জন্য স্টাইল ব্যবহার করা হয়।
সুইফ্ট
polyline.spans = [ GMSStyleSpan(style: solidRed, segments:2), GMSStyleSpan(style: redYellow, segments:10) ]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithStyle:solidRed segments:2], [GMSStyleSpan spanWithStyle:redYellow segments:10]];
ফ্র্যাকশনাল সেগমেন্ট
সেগমেন্ট ভগ্নাংশ হিসেবেও উল্লেখ করা যেতে পারে। এটি সেগমেন্টের ভগ্নাংশ সংখ্যার উপর স্টাইল প্রয়োগ করবে, যার ফলে একটি সেগমেন্ট স্প্লিট হয়ে যেতে পারে। প্রতিটি GMSStyleSpan আগেরটি শেষ হওয়ার সাথে সাথেই শুরু হয়: নিচের উদাহরণে, ধূসর রঙ দ্বিতীয় সেগমেন্টের ½ থেকে শুরু হয়ে তৃতীয় সেগমেন্টের ½ পর্যন্ত চলে।
সুইফ্ট
polyline.spans = [ GMSStyleSpan(style: solidRed, segments: 2.5), GMSStyleSpan(color: .gray), GMSStyleSpan(color: .purple, segments: 0.75), GMSStyleSpan(style: redYellow) ]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithStyle:solidRed segments:2.5], [GMSStyleSpan spanWithColor:[UIColor grayColor]], [GMSStyleSpan spanWithColor:[UIColor purpleColor] segments:0.75], [GMSStyleSpan spanWithStyle:redYellow]];
পলিলাইনে রিপিটিং কালার প্যাটার্ন যোগ করা
আপনি যদি পলিলাইনে কোনও প্যাটার্ন যোগ করতে চান, তাহলে GMSGeometryUtils-এ
GMSStyleSpans ইউটিলিটি পদ্ধতি ব্যবহার করতে পারেন। GMSStyleSpans
মেথড দুটি অ্যারে গ্রহণ করে যা একটি পুনরাবৃত্তিমূলক প্যাটার্নকে সংজ্ঞায়িত করে। একটি
অ্যারে রিপিট করা উচিত এমন স্টাইল সেট করে এবং অন্যটি রিপিট করার
ব্যবধান নির্ধারণ করে। একসাথে ব্যবহার করা হলে, আপনি এমন একটি প্যাটার্ন তৈরি করতে পারবেন যা যেকোনও পলিলাইন জুড়ে প্রয়োগ করা যেতে পারে,
এর দৈর্ঘ্য বা উপলভ্য সেগমেন্টের সংখ্যা যাই হোক না কেন।
যেমন, নিচের কোড স্নিপেটটি কালো ও সাদা রঙের অল্টারনেটিং প্যাটার্ন সহ
পলিলাইনকে সংজ্ঞায়িত করে। এর দৈর্ঘ্যকে রাম্ব লাইন (মার্কেটর প্রজেকশনে এটি একটি সরল রেখা) বরাবর মিটার হিসেবে ধরা হয়, কারণ ধরনটি
kGMSLengthRhumb হিসেবে নির্দিষ্ট করা হয়েছে।
সুইফ্ট
let styles = [ GMSStrokeStyle.solidColor(.white), GMSStrokeStyle.solidColor(.black) ] let lengths: [NSNumber] = [100000, 50000] polyline.spans = GMSStyleSpans( polyline.path!, styles, lengths, GMSLengthKind.rhumb )
Objective-C
NSArray *styles = @[[GMSStrokeStyle solidColor:[UIColor whiteColor]], [GMSStrokeStyle solidColor:[UIColor blackColor]]]; NSArray *lengths = @[@100000, @50000]; polyline.spans = GMSStyleSpans(polyline.path, styles, lengths, kGMSLengthRhumb);
স্প্রাইট স্ট্যাম্পড পলিলাইন
স্প্রাইট স্ট্যাম্পড পলিলাইন আপনাকে নিজের পছন্দের রিপিটিং বিটম্যাপ ইমেজ ব্যবহার করে পলিলাইন তৈরি করার সুবিধা দেয়। আকারগুলি একটি স্পষ্ট ব্যাকগ্রাউন্ড স্ট্রোকের সাথে দেখায়, তবে স্ট্যাম্পটি লাইনের কোণে কাটা হয় না - এটি হাঁটার দিকনির্দেশ দেখানোর জন্য ডটের মতো পরিস্থিতির জন্য উপযোগী করে তোলে।

আপনি GMSSpriteStyle ব্যবহার করে এই ফিচার ব্যবহার করতে পারবেন এবং GMSStrokeStyle-এর stampStyle
প্রপার্টি ব্যবহার করে এটিকে স্ট্যাম্প হিসেবে
সেট করতে পারবেন।
সুইফ্ট
let path = GMSMutablePath() path.addLatitude(-37.81319, longitude: 144.96298) path.addLatitude(-31.95285, longitude: 115.85734) let polyline = GMSPolyline(path: path) polyline.strokeWidth = 20 let image = UIImage(named: "imageFromBundleOrAsset")! // Image could be from anywhere let stampStyle = GMSSpriteStyle(image: image) let transparentStampStroke = GMSStrokeStyle.transparentStroke(withStamp: stampStyle) let span = GMSStyleSpan(style: transparentStampStroke) polyline.spans = [span] polyline.map = mapView
Objective-C
GMSMutablePath *path = [GMSMutablePath path]; [path addLatitude:-37.81319 longitude:144.96298]; [path addLatitude:-31.95285 longitude:115.85734]; GMSPolyline *polyline = [GMSPolyline polylineWithPath:path]; polyline.strokeWidth = 20; UIImage *image = [UIImage imageNamed:@"imageFromBundleOrAsset"]; GMSStrokeStyle *transparentStampStroke = [GMSStrokeStyle transparentStrokeWithStampStyle:[GMSSpriteStyle spriteStyleWithImage:image]]; GMSStyleSpan *span = [GMSStyleSpan spanWithStyle:transparentStampStroke]; polyline.spans = @[span]; polyline.map = mapView;
টেক্সচার স্ট্যাম্প করা পলিলাইন
টেক্সচার স্ট্যাম্প করা পলিলাইন আপনাকে নিজের পছন্দের পুনরাবৃত্ত টেক্সচার ব্যবহার করে পলিলাইন তৈরি করতে দেয়। আকৃতিগুলি স্পষ্ট, সলিড রঙ বা গ্রেডিয়েন্ট ব্যাকগ্রাউন্ড স্ট্রোকের সাথে দেখানো যেতে পারে। জুম লেভেল পরিবর্তন হওয়ার সাথে সাথে টেক্সচারের সাইজও পরিবর্তন হয়। পাথ বা পাথ পয়েন্টের শুরু বা শেষের ছবি নির্দিষ্ট জুম লেভেলে ট্রাঙ্কেট করা হয়।

আপনি GMSTextureStyle ব্যবহার করে এই ফিচার ব্যবহার করতে পারবেন এবং
GMSStrokeStyle-এর stampStyle
প্রপার্টি ব্যবহার করে এটি স্ট্যাম্প হিসেবে সেট করতে পারবেন।
সুইফ্ট
let path = GMSMutablePath() path.addLatitude(-37.81319, longitude: 144.96298) path.addLatitude(-31.95285, longitude: 115.85734) let polyline = GMSPolyline(path: path) polyline.strokeWidth = 20 let redWithStamp = GMSStrokeStyle.solidColor(.red) let image = UIImage(named: "imageFromBundleOrAsset")! // Image could be from anywhere redWithStamp.stampStyle = GMSTextureStyle(image: image) let span = GMSStyleSpan(style: redWithStamp) polyline.spans = [span] polyline.map = mapView
Objective-C
GMSMutablePath *path = [GMSMutablePath path]; [path addLatitude:-37.81319 longitude:144.96298]; [path addLatitude:-31.95285 longitude:115.85734]; GMSPolyline *polyline = [GMSPolyline polylineWithPath:path]; polyline.strokeWidth = 20; GMSStrokeStyle *redWithStamp = [GMSStrokeStyle solidColor:[UIColor redColor]]; UIImage *image = [UIImage imageNamed:@"imageFromBundleOrAsset"]; // Image could be from anywhere redWithStamp.stampStyle = [GMSTextureStyle textureStyleWithImage:image]; GMSStyleSpan *span = [GMSStyleSpan spanWithStyle:redWithStamp]; polyline.spans = @[span]; polyline.map = mapView;
ম্যাপের ক্ষমতা
GMSMapView-এ mapCapabilities প্রপার্টি ম্যাপ-নির্দিষ্ট ফিচারের জন্য
প্রোগ্রাম্যাটিক চেকিং যোগ করে। নির্দিষ্ট API কল করার আগে নির্দিষ্ট ম্যাপ capabilities উপলভ্য আছে কিনা তা জানতে চাইলে এটি কাজে লাগে। এই
কোয়েরি নির্ধারণ করে যে ম্যাপ ভিউ Sprite Stamped Polyline সাপোর্ট করে কিনা।
সুইফ্ট
let path = GMSMutablePath() path.addLatitude(-37.81319, longitude: 144.96298) path.addLatitude(-31.95285, longitude: 115.85734) let polyline = GMSPolyline(path: path) polyline.strokeWidth = 20 let image = UIImage(named: "imageFromBundleOrAsset")! // Image could be from anywhere let spans: [GMSStyleSpan] if (mapView.mapCapabilities.contains(.spritePolylines)) { let spriteStyle = GMSSpriteStyle(image: image) let stroke = GMSStrokeStyle.transparentStroke(withStamp: spriteStyle) spans = [ GMSStyleSpan(style: stroke) ] } else { let stroke = GMSStrokeStyle.solidColor(.clear) stroke.stampStyle = GMSTextureStyle(image: image) spans = [ GMSStyleSpan(style: stroke) ] } polyline.spans = spans polyline.map = mapView
Objective-C
GMSMutablePath *path = [GMSMutablePath path]; [path addLatitude:-37.81319 longitude:144.96298]; [path addLatitude:-31.95285 longitude:115.85734]; UIImage *_Nonnull image = [UIImage imageNamed:@"imageFromBundleOrAsset"]; // Image could be from anywhere NSArray<GMSStyleSpan *> * spans; if (mapView.mapCapabilities & GMSMapCapabilityFlagsSpritePolylines) { GMSSpriteStyle *spriteStyle = [GMSSpriteStyle spriteStyleWithImage:image]; GMSStrokeStyle *stroke = [GMSStrokeStyle transparentStrokeWithStampStyle:spriteStyle]; spans = @[ [GMSStyleSpan spanWithStyle:stroke] ]; } else { GMSStrokeStyle *stroke = [GMSStrokeStyle solidColor:UIColor.clearColor]; stroke.stampStyle = [GMSTextureStyle textureStyleWithImage:image]; spans = @[ [GMSStyleSpan spanWithStyle:stroke] ]; } GMSPolyline *polyline = [GMSPolyline polylineWithPath:path]; polyline.strokeWidth = 20; polyline.spans = spans; polyline.map = mapView;
এই প্যাটার্ন আপনাকে পরিবর্তন সাবস্ক্রাইব করতে এবং আপনার ম্যাপ ভিউ স্টেট সহ আপডেটে প্রতিক্রিয়া জানাতে দেয়। এছাড়াও, আপনি GMSMapViewDelegate-এ didChangeMapCapabilities প্রয়োগ করতে পারেন
যাতে ফিচারের উপলভ্যতা সম্পর্কে
আপডেট পেতে পারেন।
বহুভুজ
পলিলাইন ও পলিগন একই ধরনের, কারণ এগুলি ক্রম অনুসারে সাজানো স্থানাঙ্কের
সিরিজ নিয়ে গঠিত। তবে, ওপেন-এন্ডেড হওয়ার পরিবর্তে,
পলিগনকে এমনভাবে ডিজাইন করা হয়েছে যাতে এটি একটি ক্লোজড লুপের মধ্যে সলিড অঞ্চলকে সংজ্ঞায়িত করে। iOS-এর জন্য Maps SDK-তে
GMSPolygon
ক্লাসের মাধ্যমে পলিগন সংজ্ঞায়িত করা হয়।
আপনি যেভাবে ম্যাপে GMSPolyline যোগ করেন, ঠিক সেইভাবেই GMSPolygon যোগ করতে পারবেন। প্রথমে, সংশ্লিষ্ট GMSMutablePath অবজেক্ট তৈরি করে এবং এতে পয়েন্ট যোগ করে এর পাথ নির্দিষ্ট করুন।
এইসব পয়েন্ট বহুভুজের আউটলাইন তৈরি করে। প্রতিটি CLLocationCoordinate2D
ভূপৃষ্ঠের একটি পয়েন্টকে দেখায়। আপনি যে ক্রমে পয়েন্টগুলি পাথে যোগ করেছেন সেই ক্রম অনুযায়ী
পয়েন্টগুলির মধ্যে লাইন সেগমেন্ট আঁকা হয়।
বহুভুজ যোগ করুন
- একটি
GMSMutablePathঅবজেক্ট তৈরি করুন। addCoordinate:বাaddLatitude:longitude:পদ্ধতি ব্যবহার করে পাথে পয়েন্ট সেট করুন। এই পয়েন্টগুলি পলিগনের আউটলাইন তৈরি করে।- আর্গুমেন্ট হিসেবে পাথ ব্যবহার করে নতুন
GMSPolygonঅবজেক্ট ইনস্ট্যান্টিয়েট করুন। - আপনার পছন্দ অনুযায়ী
strokeWidth,strokeColorএবংfillColor-এর মতো অন্যান্য প্রপার্টি সেট করুন। GMSPolygon.mapপ্রপার্টি সেট করেGMSMapViewঅবজেক্টে পলিগন অ্যাসাইন করুন।- ম্যাপে পলিগন দেখা যায়।
নিম্নলিখিত কোড স্নিপেট ম্যাপে একটি আয়তক্ষেত্র যোগ করে।
সুইফ্ট
// Create a rectangular path let rect = GMSMutablePath() rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0)) rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0)) rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2)) rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2)) // Create the polygon, and assign it to the map. let polygon = GMSPolygon(path: rect) polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.05); polygon.strokeColor = .black polygon.strokeWidth = 2 polygon.map = mapView
Objective-C
// Create a rectangular path GMSMutablePath *rect = [GMSMutablePath path]; [rect addCoordinate:CLLocationCoordinate2DMake(37.36, -122.0)]; [rect addCoordinate:CLLocationCoordinate2DMake(37.45, -122.0)]; [rect addCoordinate:CLLocationCoordinate2DMake(37.45, -122.2)]; [rect addCoordinate:CLLocationCoordinate2DMake(37.36, -122.2)]; // Create the polygon, and assign it to the map. GMSPolygon *polygon = [GMSPolygon polygonWithPath:rect]; polygon.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.05]; polygon.strokeColor = [UIColor blackColor]; polygon.strokeWidth = 2; polygon.map = mapView;
আপনি ম্যাপে পলিগন যোগ করার আগে এবং পরে, উভয় ক্ষেত্রেই এর চেহারা কাস্টমাইজ করতে পারবেন।
বহুভুজ সরানো
GMSPolygon.map প্রপার্টি nil-এ সেট করে এবং layer-কে তার পেরেন্ট থেকে বিচ্ছিন্ন করে
একটি পলিগন সরান।
সুইফ্ট
polygon.map = nil polygon.layer.removeFromSuperLayer()
Objective-C
polygon.map = nil; [polygon.layer removeFromSuperlayer];
সার্কেল
সাধারণ GMSPolygon ক্লাস ছাড়াও, iOS-এর জন্য Maps SDK-তে GMSCircle অন্তর্ভুক্ত থাকে, যা আপনাকে
পৃথিবীর পৃষ্ঠে বৃত্ত আঁকার অনুমতি দেয়।
বৃত্ত আঁকার জন্য আপনাকে নিম্নলিখিত দুটি প্রপার্টি উল্লেখ করতে হবে:
position-এCLLocationCoordinate2Dহিসেবে।radiusমিটার।
তারপর, পৃথিবীর পৃষ্ঠের সমস্ত বিন্দুর সেটকে বৃত্ত হিসেবে সংজ্ঞায়িত করা হয়
যা প্রদত্ত center থেকে radius মিটার দূরে। Maps API-এর ব্যবহার করা
মার্কেটর প্রজেকশন যেভাবে সমতল পৃষ্ঠে একটি গোলক রেন্ডার করে,
তার কারণে নিরক্ষরেখার কাছাকাছি অবস্থিত হলে এটি ম্যাপে প্রায় নিখুঁত বৃত্ত হিসাবে দেখায়
এবং বৃত্তটি নিরক্ষরেখা থেকে দূরে সরে যাওয়ার সাথে সাথে
ক্রমশ বৃত্তাকার নয় (স্ক্রিনে) বলে মনে হয়।
সার্কেল যোগ করা হচ্ছে
নিম্নলিখিত কোড স্নিপেট ম্যাপে একটি বৃত্ত যোগ করে:
সুইফ্ট
let circleCenter = CLLocationCoordinate2D(latitude: 37.35, longitude: -122.0) let circle = GMSCircle(position: circleCenter, radius: 1000) circle.map = mapView
Objective-C
CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(37.35, -122.0); GMSCircle *circle = [GMSCircle circleWithPosition:circleCenter radius:1000]; circle.map = mapView;
আপনি ম্যাপে বৃত্ত যোগ করার আগে এবং পরে, উভয় ক্ষেত্রেই বৃত্তের চেহারা কাস্টমাইজ করতে পারবেন।
সার্কেল কাস্টমাইজ করা
আপনি GMSCircle-এর প্রপার্টি পরিবর্তন করে কাস্টম রঙ ও স্ট্রোকের প্রস্থ নির্দিষ্ট করতে পারবেন। এটি নিম্নলিখিত বিকল্পগুলি সমর্থন করে:
fillColor- একটি
UIColorঅবজেক্ট যা বৃত্তের ভিতরের রঙ নির্দিষ্ট করে। ডিফল্ট হিসেবে স্বচ্ছ থাকে। strokeColor- একটি
UIColorঅবজেক্ট যা বৃত্তের আউটলাইনের রঙ নির্দিষ্ট করে। ডিফল্ট হিসেবেblackColorসেট করা থাকে। strokeWidth- স্ক্রিন পয়েন্টে, বৃত্তের আউটলাইনের ঘনত্ব। ডিফল্ট হিসেবে ১ সেট করা থাকে। ম্যাপ জুম করা হলে, থিকনেস স্কেল করা হয় না।
নিম্নলিখিত স্নিপেটটি একটি মোটা লাল বৃত্ত যোগ করে যার ভিতরের অংশটি আধা-স্বচ্ছ লাল রঙের।
সুইফ্ট
circle.fillColor = UIColor(red: 0.35, green: 0, blue: 0, alpha: 0.05) circle.strokeColor = .red circle.strokeWidth = 5
Objective-C
circle.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.05]; circle.strokeColor = [UIColor redColor]; circle.strokeWidth = 5;
ফাঁপা বহুভুজ তৈরি করা হচ্ছে
আপনি একটি GMSPolygon অবজেক্টে একাধিক পাথ একত্রিত করে
জটিল আকার তৈরি করতে পারেন, যেমন ফিল করা রিং বা ডোনাট (যেখানে বহুভুজাকার ক্ষেত্রগুলি
বহুভুজের ভিতরে আলাদা আকার হিসাবে দেখা যায়)। জটিল আকার হল একাধিক
পাথের কম্পোজিশন।
এমন একটি পাথ সহ বহুভুজ তৈরি করুন যা বহুভুজ দ্বারা কভার করা সবচেয়ে বড় এলাকা নির্দিষ্ট করে। তারপর, বহুভুজের holes প্রপার্টি এক বা একাধিক GMSPath অবজেক্টের অ্যারে হিসেবে উল্লেখ করুন, যা বহুভুজের মধ্যে থাকা গর্তকে সংজ্ঞায়িত করে।
ছোট পথটি যদি বড় পথের মধ্যে সম্পূর্ণভাবে আবদ্ধ থাকে, তাহলে মনে হবে যেন বহুভুজের একটি অংশ সরিয়ে দেওয়া হয়েছে।
নিম্নলিখিত কোড স্যাম্পেল দুটি গর্ত সহ একটি পলিগন তৈরি করে:
সুইফ্ট
let hydeParkLocation = CLLocationCoordinate2D(latitude: -33.87344, longitude: 151.21135) let camera = GMSCameraPosition.camera(withTarget: hydeParkLocation, zoom: 16) let options = GMSMapViewOptions() options.camera = camera let mapView = GMSMapView(options: options) mapView.animate(to: camera) let hydePark = "tpwmEkd|y[QVe@Pk@BsHe@mGc@iNaAKMaBIYIq@qAMo@Eo@@[Fe@DoALu@HUb@c@XUZS^ELGxOhAd@@ZB`@J^BhFRlBN\\BZ@`AFrATAJAR?rAE\\C~BIpD" let archibaldFountain = "tlvmEqq|y[NNCXSJQOB[TI" let reflectionPool = "bewmEwk|y[Dm@zAPEj@{AO" let hollowPolygon = GMSPolygon() hollowPolygon.path = GMSPath(fromEncodedPath: hydePark) hollowPolygon.holes = [GMSPath(fromEncodedPath: archibaldFountain)!, GMSPath(fromEncodedPath: reflectionPool)!] hollowPolygon.fillColor = UIColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 0.2) hollowPolygon.strokeColor = UIColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0) hollowPolygon.strokeWidth = 2 hollowPolygon.map = mapView
Objective-C
CLLocationCoordinate2D hydeParkLocation = CLLocationCoordinate2DMake(-33.87344, 151.21135); GMSCameraPosition *camera = [GMSCameraPosition cameraWithTarget:hydeParkLocation zoom:16]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; mapView = [[GMSMapView alloc] initWithOptions:options]; NSString *hydePark = @"tpwmEkd|y[QVe@Pk@BsHe@mGc@iNaAKMaBIYIq@qAMo@Eo@@[Fe@DoALu@HUb@c@XUZS^ELGxOhAd@@ZB`@J^BhFRlBN\\BZ@`AFrATAJAR?rAE\\C~BIpD"; NSString *archibaldFountain = @"tlvmEqq|y[NNCXSJQOB[TI"; NSString *reflectionPool = @"bewmEwk|y[Dm@zAPEj@{AO"; GMSPolygon *hollowPolygon = [[GMSPolygon alloc] init]; hollowPolygon.path = [GMSPath pathFromEncodedPath:hydePark]; hollowPolygon.holes = @[[GMSPath pathFromEncodedPath:archibaldFountain], [GMSPath pathFromEncodedPath:reflectionPool]]; hollowPolygon.fillColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.2]; hollowPolygon.strokeColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0]; hollowPolygon.strokeWidth = 2; hollowPolygon.map = mapView;