
iOS-এর জন্য Maps SDK আপনার ম্যাপে আকার যোগ করার জন্য বিভিন্ন উপায় অফার করে। নিম্নলিখিত আকারগুলি কাজ করে:
- পলিলাইন হল সংযুক্ত লাইন সেগমেন্টের একটি সিরিজ যা আপনার পছন্দমতো যেকোনও আকার তৈরি করতে পারে এবং ম্যাপে পথ ও রুট চিহ্নিত করতে ব্যবহার করা যেতে পারে।
- পলিগন হল একটি ঘেরা আকৃতি যা ম্যাপে এলাকা চিহ্নিত করতে ব্যবহার করা যেতে পারে।
- বৃত্ত হল পৃথিবীর পৃষ্ঠে একটি বৃত্তের ভৌগোলিকভাবে সঠিক অভিক্ষেপ।
আপনি বিভিন্ন উপায়ে প্রতিটি আকারের রূপ পরিবর্তন করতে পারবেন।
পলিলাইন
পলিলাইন আপনাকে ম্যাপে লাইন আঁকার অনুমতি দেয়। GMSPolyline
অবজেক্ট লোকেশনের একটি ক্রমকে উপস্থাপন করে, যা লাইন সেগমেন্টের একটি সিরিজ হিসাবে
প্রদর্শিত হয়। আপনি
GMSStrokeStyle-এর সাহায্যে পলিলাইনের রঙ সেট করতে পারবেন।
পলিলাইন তৈরি করতে, আপনাকে দুই বা তার বেশি পয়েন্ট সহ সংশ্লিষ্ট GMSMutablePath অবজেক্ট তৈরি করে
এর পাথ নির্দিষ্ট করতে হবে।
প্রতিটি CLLocationCoordinate2D পৃথিবীর পৃষ্ঠের একটি বিন্দুকে দেখায়। আপনি যে ক্রমে পয়েন্টগুলি যোগ করেছেন সেই ক্রম অনুযায়ী পয়েন্টগুলির মধ্যে লাইন সেগমেন্ট আঁকা হয়। আপনি addCoordinate: বা
addLatitude:longitude: পদ্ধতি ব্যবহার করে পাথে পয়েন্ট যোগ করতে পারবেন।
Swift
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প্রপার্টি সেট করুন।- ম্যাপে পলিলাইন দেখা যায়।
নিম্নলিখিত কোড স্নিপেট ম্যাপে একটি আয়তক্ষেত্র যোগ করে:
Swift
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 মেথড কল করে ম্যাপের সব ওভারলে (পলিলাইন ও অন্যান্য আকার সহ) সরিয়ে দিতে পারেন।
Swift
mapView.clear()
Objective-C
[mapView clear];
পলিলাইন কাস্টমাইজ করা
GMSPolyline অবজেক্ট লাইনের উপস্থিতি নিয়ন্ত্রণ করার জন্য
একাধিক প্রপার্টি প্রদান করে। এটি নিম্নলিখিত বিকল্পগুলি সমর্থন করে:
strokeWidth- স্ক্রিন পয়েন্টে, সম্পূর্ণ লাইনের প্রস্থ। ডিফল্ট হিসেবে ১ সেট করা থাকে। ম্যাপ জুম করা হলে প্রস্থ স্কেল করা হয় না।
geodesic-
YESহলে, এই পলিলাইন এজ জিওডেসিক হিসেবে রেন্ডার করুন। জিওডেসিক সেগমেন্ট পৃথিবীর পৃষ্ঠ বরাবর সবচেয়ে ছোট পথ অনুসরণ করে এবং মার্কেটর প্রজেকশন সহ একটি ম্যাপে বাঁকা লাইন হিসাবে দেখা যেতে পারে। নন-জিওডেসিক সেগমেন্ট ম্যাপে সরলরেখা হিসেবে আঁকা হয়। ডিফল্ট হিসেবেNOসেট করা থাকে। spans- পলিলাইনের এক বা একাধিক সেগমেন্টের রঙ নির্দিষ্ট করতে ব্যবহার করা হয়। spans
প্রপার্টি হল
GMSStyleSpanঅবজেক্টের একটি অ্যারে।spansপ্রপার্টি সেট করা হল পলিলাইনের রঙ পরিবর্তন করার পছন্দসই উপায়। strokeColor- একটি
UIColorঅবজেক্ট যা পলিলাইনের রঙ নির্দিষ্ট করে। ডিফল্ট হিসেবেblueColorসেট করা থাকে।spansসেট করা থাকলেstrokeColorপ্রপার্টি উপেক্ষা করা হয়।
নিম্নলিখিত স্নিপেটটি মেলবোর্ন থেকে পার্থ পর্যন্ত একটি মোটা পলিলাইন যোগ করে, সাথে জিওডেসিক ইন্টারপোলেশন।
Swift
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 অবজেক্টটি
ধরে রাখতে ভুলবেন না।
Swift
polyline.strokeColor = .blue
Objective-C
polyline.strokeColor = [UIColor blueColor];
পলিলাইনের রঙ পরিবর্তন করা
ম্যাপে পলিলাইনগুলি সেগমেন্টের সিরিজ হিসেবে আঁকা হয়। আপনি spans প্রপার্টি ব্যবহার করে
আলাদা আলাদা সেগমেন্ট বা সম্পূর্ণ লাইনের রঙ পরিবর্তন করতে পারবেন। যদিও
এই প্রপার্টি আপনাকে পলিলাইনের রঙ করার উপর বিস্তারিত নিয়ন্ত্রণ দেয়,
বেশ কিছু সুবিধা রয়েছে যা আপনাকে পুরো লাইনে একটি একক স্টাইল প্রয়োগ করতে
দেয়।
নিচের স্নিপেটটি spanWithColor: পদ্ধতি ব্যবহার করে পুরো লাইনের রঙ লাল করে দেয়।
Swift
polyline.spans = [GMSStyleSpan(color: .red)]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithColor:[UIColor redColor]]];
বিকল্প হিসেবে, আপনার কাছে আগে থেকেই GMSStrokeStyle
অবজেক্টের অ্যাক্সেস থাকলে, আপনি spanWithStyle: পদ্ধতি ব্যবহার করতে পারবেন।
Swift
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-এর থেকে বেশি অগ্রাধিকার পায়।
Swift
polyline.strokeColor = .red
Objective-C
polyline.strokeColor = [UIColor redColor];
স্টাইল
আপনার অ্যাপ যদি একই স্ট্রোক কালার একাধিকবার প্রয়োগ করে, তাহলে আপনি আবার ব্যবহার করা যায় এমন স্টাইল
সংজ্ঞায়িত করতে পারেন। GMSStrokeStyle অবজেক্ট ব্যবহার করে
পলিলাইন স্টাইল নির্দিষ্ট করা হয়। স্ট্রোক স্টাইল সলিড কালার অথবা এক রঙ থেকে অন্য রঙে গ্রেডিয়েন্ট হতে পারে। আপনি কোনও স্টাইল তৈরি করার পরে, spanWithStyle: পদ্ধতি ব্যবহার করে সেটি GMSStyleSpan-এ প্রয়োগ করতে পারবেন।
Swift
// 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-এ সেট করে পুরো লাইনের রঙ পরিবর্তন করতে পারেন। উদাহরণটি
দেখায় যে কীভাবে পলিলাইনের পুরো দৈর্ঘ্য জুড়ে একটি গ্রেডিয়েন্ট প্রয়োগ করতে হয়।
Swift
polyline.spans = [GMSStyleSpan(style: redYellow)]
Objective-C
polyline.spans = @[[GMSStyleSpan spanWithStyle:redYellow]];
আলাদা আলাদা লাইন সেগমেন্টের রঙ পরিবর্তন করা
আপনি যদি আপনার পলিলাইনের প্রতিটি সেগমেন্ট আলাদাভাবে স্টাইল করতে চান, তাহলে আপনি GMSStyleSpan অবজেক্টের একটি অ্যারে তৈরি করে এবং এটি spans প্রপার্টিতে পাস করে তা করতে পারেন। ডিফল্ট হিসেবে, অ্যারের প্রতিটি আইটেম সংশ্লিষ্ট লাইন সেগমেন্টের
রঙ সেট করে। অ্যারেতে লাইনের সেগমেন্টের চেয়ে বেশি এলিমেন্ট থাকলে, অতিরিক্ত এলিমেন্ট উপেক্ষা করা হবে। অ্যারেতে কম এলিমেন্ট
থাকলে, শেষ GMSStyleSpan লাইনের বাকি অংশের
রঙ বর্ণনা করে।
আপনার পলিলাইন বরাবর উচ্চতা বা গতির মতো পরিবর্তনগুলি নির্দেশ করতে আপনি রঙের ব্লক এবং/অথবা গ্রেডিয়েন্ট পলিলাইন ব্যবহার করতে পারেন। নিচের স্নিপেটটি একটি পলিলাইনের প্রথম দুটি সেগমেন্টের রঙ লাল করে দেয় এবং লাইনের বাকি অংশটি লাল থেকে হলুদ রঙের গ্রেডিয়েন্ট হয়।
Swift
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-এর সেগমেন্টের দৈর্ঘ্য সবসময় উপেক্ষা করা হয়
কারণ লাইনের বাকি অংশ বর্ণনা করার জন্য স্টাইল ব্যবহার করা হয়।
Swift
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 আগেরটি শেষ হওয়ার সাথে সাথেই শুরু হয়: নিচের উদাহরণে, ধূসর রঙ দ্বিতীয় সেগমেন্টের ½ থেকে শুরু হয়ে তৃতীয় সেগমেন্টের ½ পর্যন্ত চলে।
Swift
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 হিসেবে উল্লেখ করা হয়েছে।
Swift
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
প্রপার্টি ব্যবহার করে এটি স্ট্যাম্প হিসেবে
সেট করতে পারবেন।
Swift
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
প্রপার্টি ব্যবহার করে এটি স্ট্যাম্প হিসেবে সেট করতে পারবেন।
Swift
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 উপলভ্য আছে কিনা তা জানতে চাইলে এটি উপযোগী। এই
কোয়েরি নির্ধারণ করে যে ম্যাপ ভিউ স্প্রাইট স্ট্যাম্পড পলিলাইন সাপোর্ট করে কিনা।
Swift
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অবজেক্টে পলিগন অ্যাসাইন করুন।- ম্যাপে পলিগন দেখা যায়।
নিম্নলিখিত কোড স্নিপেট ম্যাপে একটি আয়তক্ষেত্র যোগ করে।
Swift
// 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-কে তার প্যারেন্ট থেকে আলাদা করে
পলিগন সরান।
Swift
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-এর ব্যবহার করা
মার্কেটর প্রজেকশন যেভাবে সমতল পৃষ্ঠে গোলক রেন্ডার করে,
তার কারণে নিরক্ষরেখার কাছাকাছি অবস্থিত হলে এটি ম্যাপে প্রায় নিখুঁত বৃত্ত হিসাবে দেখায়
এবং বৃত্তটি নিরক্ষরেখা থেকে দূরে সরে যাওয়ার সাথে সাথে
ক্রমশ বৃত্তাকার নয় (স্ক্রিনে) বলে মনে হয়।
সার্কেল যোগ করা হচ্ছে
নিম্নলিখিত কোড স্নিপেট ম্যাপে একটি বৃত্ত যোগ করে:
Swift
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- স্ক্রিন পয়েন্টে, বৃত্তের আউটলাইনের ঘনত্ব। ডিফল্ট হিসেবে ১ সেট করা থাকে। ম্যাপ জুম করা হলে, লাইনের ঘনত্ব স্কেল করা হয় না।
নিম্নলিখিত স্নিপেটটি একটি ঘন লাল বৃত্ত যোগ করে যার ভিতরে একটি আধা-স্বচ্ছ লাল রঙ থাকে।
Swift
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 অবজেক্টের অ্যারে হিসেবে উল্লেখ করুন, যা বহুভুজের মধ্যে থাকা গর্তকে সংজ্ঞায়িত করে।
ছোট পাথটি যদি বড় পাথের মধ্যে সম্পূর্ণভাবে আবদ্ধ থাকে, তাহলে মনে হবে যেন পলিগনের একটি অংশ সরিয়ে দেওয়া হয়েছে।
নিম্নলিখিত কোড স্যাম্পেল দুটি গর্ত সহ একটি পলিগন তৈরি করে:
Swift
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;