শুরু করুন
নমুনা কোডটি চেষ্টা করার আগে, আপনাকে অবশ্যই আপনার ডেভেলপমেন্ট পরিবেশ কনফিগার করতে হবে। আরও তথ্যের জন্য, iOS কোড নমুনার জন্য Maps SDK দেখুন।
কোডটি দেখুন
সুইফট
import GoogleMaps import UIKit final class PolylinesViewController: UIViewController { private lazy var styles: [GMSStrokeStyle] = { let greenStyle = GMSStrokeStyle.gradient(from: .green, to: UIColor.green.withAlphaComponent(0)) let redStyle = GMSStrokeStyle.gradient(from: UIColor.red.withAlphaComponent(0), to: .red) return [greenStyle, redStyle, GMSStrokeStyle.solidColor(UIColor(white: 0, alpha: 0))] }() private var pathLength: Double = 0 private var pos: Double = 0 private var polylines: [GMSPolyline] = [] private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -30, longitude: -175, zoom: 3) return GMSMapView(frame: .zero, camera: camera) }() override func loadView() { view = mapView mapView.accessibilityElementsHidden = true } override func viewDidLoad() { super.viewDidLoad() var path = GMSMutablePath() path.addLatitude(-33.866901, longitude: 151.195988) path.addLatitude(-18, longitude: 179) path.addLatitude(21.291982, longitude: -157.821856) path.addLatitude(37.423802, longitude: -122.091859) path.addLatitude(-12, longitude: -77) path.addLatitude(-33.866901, longitude: 151.195988) path = path.pathOffset(byLatitude: -30, longitude: 0) pathLength = path.length(of: .geodesic) / 21 for i in 0..<30 { let polyline = GMSPolyline(path: path.pathOffset(byLatitude: Double(i) * 1.5, longitude: 0)) polyline.strokeWidth = 8 polyline.geodesic = true polyline.map = mapView polylines.append(polyline) } animatePath() } // Updates the path style every 0.1 seconds. private func animatePath() { polylines.forEach { if let path = $0.path { $0.spans = GMSStyleSpansOffset(path, styles, [NSNumber(value: pathLength)], .geodesic, pos) } } pos -= 50000 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { self.animatePath() } } }
অবজেক্টিভ-সি
#import "GoogleMapsDemos/Samples/PolylinesViewController.h" #import <GoogleMaps/GoogleMaps.h> static CLLocationCoordinate2D kSydneyAustralia = {-33.866901, 151.195988}; static CLLocationCoordinate2D kHawaiiUSA = {21.291982, -157.821856}; static CLLocationCoordinate2D kFiji = {-18, 179}; static CLLocationCoordinate2D kMountainViewUSA = {37.423802, -122.091859}; static CLLocationCoordinate2D kLimaPeru = {-12, -77}; static bool kAnimate = true; @implementation PolylinesViewController { NSArray *_styles; NSArray *_lengths; NSArray *_polys; double _pos, _step; GMSMapView *_mapView; } - (void)tick { for (GMSPolyline *poly in _polys) { poly.spans = GMSStyleSpansOffset(poly.path, _styles, _lengths, kGMSLengthGeodesic, _pos); } _pos -= _step; if (kAnimate) { __weak id weakSelf = self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC / 10), dispatch_get_main_queue(), ^{ [weakSelf tick]; }); } } - (void)initLines { if (!_polys) { NSMutableArray *polys = [NSMutableArray array]; GMSMutablePath *path = [GMSMutablePath path]; [path addCoordinate:kSydneyAustralia]; [path addCoordinate:kFiji]; [path addCoordinate:kHawaiiUSA]; [path addCoordinate:kMountainViewUSA]; [path addCoordinate:kLimaPeru]; [path addCoordinate:kSydneyAustralia]; path = [path pathOffsetByLatitude:-30 longitude:0]; _lengths = @[ @([path lengthOfKind:kGMSLengthGeodesic] / 21) ]; for (int i = 0; i < 30; ++i) { GMSPolyline *poly = [[GMSPolyline alloc] init]; poly.path = [path pathOffsetByLatitude:(i * 1.5) longitude:0]; poly.strokeWidth = 8; poly.geodesic = YES; poly.map = _mapView; [polys addObject:poly]; } _polys = polys; } } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-30 longitude:-175 zoom:3]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.accessibilityElementsHidden = YES; self.view = mapView; _mapView = mapView; CGFloat alpha = 1; UIColor *green = [UIColor colorWithRed:0 green:1 blue:0 alpha:alpha]; UIColor *greenTransp = [UIColor colorWithRed:0 green:1 blue:0 alpha:0]; UIColor *red = [UIColor colorWithRed:1 green:0 blue:0 alpha:alpha]; UIColor *redTransp = [UIColor colorWithRed:1 green:0 blue:0 alpha:0]; GMSStrokeStyle *grad1 = [GMSStrokeStyle gradientFromColor:green toColor:greenTransp]; GMSStrokeStyle *grad2 = [GMSStrokeStyle gradientFromColor:redTransp toColor:red]; _styles = @[ grad1, grad2, [GMSStrokeStyle solidColor:[UIColor colorWithWhite:0 alpha:0]], ]; _step = 50000; [self initLines]; [self tick]; } @end
সম্পূর্ণ নমুনা অ্যাপটি স্থানীয়ভাবে চালান
iOS নমুনা অ্যাপের জন্য Maps SDK GitHub থেকে ডাউনলোড আর্কাইভ হিসেবে পাওয়া যাচ্ছে। iOS নমুনা অ্যাপের জন্য Maps SDK ইনস্টল করে চেষ্টা করে দেখতে এই ধাপগুলি অনুসরণ করুন।
- স্থানীয় ডিরেক্টরিতে নমুনা সংগ্রহস্থল ক্লোন করতে
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gitচালান। একটি টার্মিনাল উইন্ডো খুলুন, যেখানে আপনি নমুনা ফাইলগুলি ক্লোন করেছেন সেই ডিরেক্টরিতে যান এবং GoogleMaps ডিরেক্টরিতে যান:
সুইফট
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojঅবজেক্টিভ-সি
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Xcode প্রজেক্টে, File > Add Package Dependencies এ যান। URL হিসেবে
https://github.com/googlemaps/ios-maps-sdkলিখুন, প্যাকেজটি টেনে আনতে Enter টিপুন এবং Add Package এ ক্লিক করুন। - Xcode-এ, বর্তমান স্কিম ব্যবহার করে অ্যাপ তৈরি করতে কম্পাইল বোতাম টিপুন। বিল্ডটি একটি ত্রুটি তৈরি করে, যার ফলে আপনাকে Swift-এর জন্য
SDKConstants.swiftফাইলে অথবা Objective-C-এর জন্যSDKDemoAPIKey.hফাইলে আপনার API কী লিখতে হবে। - iOS এর জন্য Maps SDK সক্ষম করে আপনার প্রকল্প থেকে একটি API কী পান ।
- Swift এর জন্য
SDKConstants.swiftফাইল অথবা Objective-C এর জন্যSDKDemoAPIKey.hফাইল সম্পাদনা করুন এবং আপনার API কীটিapiKeyঅথবাkAPIKeyধ্রুবকের সংজ্ঞায় পেস্ট করুন। উদাহরণস্বরূপ:সুইফট
static let apiKey = "YOUR_API_KEY"অবজেক্টিভ-সি
static NSString *const kAPIKey = @"YOUR_API_KEY";
-
SDKConstants.swiftফাইল (Swift) অথবাSDKDemoAPIKey.hফাইল (Objective-C) থেকে, নিম্নলিখিত লাইনটি সরিয়ে ফেলুন, কারণ এটি ব্যবহারকারী-সংজ্ঞায়িত সমস্যা নিবন্ধন করতে ব্যবহৃত হয়:সুইফট
#error (Register for API Key and insert here. Then delete this line.)
অবজেক্টিভ-সি
#error Register for API Key and insert here.
- প্রকল্পটি তৈরি করুন এবং চালান। iOS সিমুলেটর উইন্ডোটি প্রদর্শিত হবে, যেখানে Maps SDK ডেমোর একটি তালিকা দেখানো হবে।
- iOS এর জন্য Maps SDK এর একটি বৈশিষ্ট্য নিয়ে পরীক্ষা করার জন্য প্রদর্শিত বিকল্পগুলির মধ্যে একটি বেছে নিন।
- যদি GoogleMapsDemos কে আপনার অবস্থান অ্যাক্সেস করার অনুমতি দিতে বলা হয়, তাহলে Allow নির্বাচন করুন।
শুরু করুন
নমুনা কোডটি চেষ্টা করার আগে, আপনাকে অবশ্যই আপনার ডেভেলপমেন্ট পরিবেশ কনফিগার করতে হবে। আরও তথ্যের জন্য, iOS কোড নমুনার জন্য Maps SDK দেখুন।
কোডটি দেখুন
সুইফট
import GoogleMaps import UIKit final class PolylinesViewController: UIViewController { private lazy var styles: [GMSStrokeStyle] = { let greenStyle = GMSStrokeStyle.gradient(from: .green, to: UIColor.green.withAlphaComponent(0)) let redStyle = GMSStrokeStyle.gradient(from: UIColor.red.withAlphaComponent(0), to: .red) return [greenStyle, redStyle, GMSStrokeStyle.solidColor(UIColor(white: 0, alpha: 0))] }() private var pathLength: Double = 0 private var pos: Double = 0 private var polylines: [GMSPolyline] = [] private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -30, longitude: -175, zoom: 3) return GMSMapView(frame: .zero, camera: camera) }() override func loadView() { view = mapView mapView.accessibilityElementsHidden = true } override func viewDidLoad() { super.viewDidLoad() var path = GMSMutablePath() path.addLatitude(-33.866901, longitude: 151.195988) path.addLatitude(-18, longitude: 179) path.addLatitude(21.291982, longitude: -157.821856) path.addLatitude(37.423802, longitude: -122.091859) path.addLatitude(-12, longitude: -77) path.addLatitude(-33.866901, longitude: 151.195988) path = path.pathOffset(byLatitude: -30, longitude: 0) pathLength = path.length(of: .geodesic) / 21 for i in 0..<30 { let polyline = GMSPolyline(path: path.pathOffset(byLatitude: Double(i) * 1.5, longitude: 0)) polyline.strokeWidth = 8 polyline.geodesic = true polyline.map = mapView polylines.append(polyline) } animatePath() } // Updates the path style every 0.1 seconds. private func animatePath() { polylines.forEach { if let path = $0.path { $0.spans = GMSStyleSpansOffset(path, styles, [NSNumber(value: pathLength)], .geodesic, pos) } } pos -= 50000 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { self.animatePath() } } }
অবজেক্টিভ-সি
#import "GoogleMapsDemos/Samples/PolylinesViewController.h" #import <GoogleMaps/GoogleMaps.h> static CLLocationCoordinate2D kSydneyAustralia = {-33.866901, 151.195988}; static CLLocationCoordinate2D kHawaiiUSA = {21.291982, -157.821856}; static CLLocationCoordinate2D kFiji = {-18, 179}; static CLLocationCoordinate2D kMountainViewUSA = {37.423802, -122.091859}; static CLLocationCoordinate2D kLimaPeru = {-12, -77}; static bool kAnimate = true; @implementation PolylinesViewController { NSArray *_styles; NSArray *_lengths; NSArray *_polys; double _pos, _step; GMSMapView *_mapView; } - (void)tick { for (GMSPolyline *poly in _polys) { poly.spans = GMSStyleSpansOffset(poly.path, _styles, _lengths, kGMSLengthGeodesic, _pos); } _pos -= _step; if (kAnimate) { __weak id weakSelf = self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC / 10), dispatch_get_main_queue(), ^{ [weakSelf tick]; }); } } - (void)initLines { if (!_polys) { NSMutableArray *polys = [NSMutableArray array]; GMSMutablePath *path = [GMSMutablePath path]; [path addCoordinate:kSydneyAustralia]; [path addCoordinate:kFiji]; [path addCoordinate:kHawaiiUSA]; [path addCoordinate:kMountainViewUSA]; [path addCoordinate:kLimaPeru]; [path addCoordinate:kSydneyAustralia]; path = [path pathOffsetByLatitude:-30 longitude:0]; _lengths = @[ @([path lengthOfKind:kGMSLengthGeodesic] / 21) ]; for (int i = 0; i < 30; ++i) { GMSPolyline *poly = [[GMSPolyline alloc] init]; poly.path = [path pathOffsetByLatitude:(i * 1.5) longitude:0]; poly.strokeWidth = 8; poly.geodesic = YES; poly.map = _mapView; [polys addObject:poly]; } _polys = polys; } } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-30 longitude:-175 zoom:3]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.accessibilityElementsHidden = YES; self.view = mapView; _mapView = mapView; CGFloat alpha = 1; UIColor *green = [UIColor colorWithRed:0 green:1 blue:0 alpha:alpha]; UIColor *greenTransp = [UIColor colorWithRed:0 green:1 blue:0 alpha:0]; UIColor *red = [UIColor colorWithRed:1 green:0 blue:0 alpha:alpha]; UIColor *redTransp = [UIColor colorWithRed:1 green:0 blue:0 alpha:0]; GMSStrokeStyle *grad1 = [GMSStrokeStyle gradientFromColor:green toColor:greenTransp]; GMSStrokeStyle *grad2 = [GMSStrokeStyle gradientFromColor:redTransp toColor:red]; _styles = @[ grad1, grad2, [GMSStrokeStyle solidColor:[UIColor colorWithWhite:0 alpha:0]], ]; _step = 50000; [self initLines]; [self tick]; } @end
সম্পূর্ণ নমুনা অ্যাপটি স্থানীয়ভাবে চালান
iOS নমুনা অ্যাপের জন্য Maps SDK GitHub থেকে ডাউনলোড আর্কাইভ হিসেবে পাওয়া যাচ্ছে। iOS নমুনা অ্যাপের জন্য Maps SDK ইনস্টল করে চেষ্টা করে দেখতে এই ধাপগুলি অনুসরণ করুন।
- স্থানীয় ডিরেক্টরিতে নমুনা সংগ্রহস্থল ক্লোন করতে
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gitচালান। একটি টার্মিনাল উইন্ডো খুলুন, যেখানে আপনি নমুনা ফাইলগুলি ক্লোন করেছেন সেই ডিরেক্টরিতে যান এবং GoogleMaps ডিরেক্টরিতে যান:
সুইফট
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojঅবজেক্টিভ-সি
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Xcode প্রজেক্টে, File > Add Package Dependencies এ যান। URL হিসেবে
https://github.com/googlemaps/ios-maps-sdkলিখুন, প্যাকেজটি টেনে আনতে Enter টিপুন এবং Add Package এ ক্লিক করুন। - Xcode-এ, বর্তমান স্কিম ব্যবহার করে অ্যাপ তৈরি করতে কম্পাইল বোতাম টিপুন। বিল্ডটি একটি ত্রুটি তৈরি করে, যার ফলে আপনাকে Swift-এর জন্য
SDKConstants.swiftফাইলে অথবা Objective-C-এর জন্যSDKDemoAPIKey.hফাইলে আপনার API কী লিখতে হবে। - iOS এর জন্য Maps SDK সক্ষম করে আপনার প্রকল্প থেকে একটি API কী পান ।
- Swift এর জন্য
SDKConstants.swiftফাইল অথবা Objective-C এর জন্যSDKDemoAPIKey.hফাইল সম্পাদনা করুন এবং আপনার API কীটিapiKeyঅথবাkAPIKeyধ্রুবকের সংজ্ঞায় পেস্ট করুন। উদাহরণস্বরূপ:সুইফট
static let apiKey = "YOUR_API_KEY"অবজেক্টিভ-সি
static NSString *const kAPIKey = @"YOUR_API_KEY";
-
SDKConstants.swiftফাইল (Swift) অথবাSDKDemoAPIKey.hফাইল (Objective-C) থেকে, নিম্নলিখিত লাইনটি সরিয়ে ফেলুন, কারণ এটি ব্যবহারকারী-সংজ্ঞায়িত সমস্যা নিবন্ধন করতে ব্যবহৃত হয়:সুইফট
#error (Register for API Key and insert here. Then delete this line.)
অবজেক্টিভ-সি
#error Register for API Key and insert here.
- প্রকল্পটি তৈরি করুন এবং চালান। iOS সিমুলেটর উইন্ডোটি প্রদর্শিত হবে, যেখানে Maps SDK ডেমোর একটি তালিকা দেখানো হবে।
- iOS এর জন্য Maps SDK এর একটি বৈশিষ্ট্য নিয়ে পরীক্ষা করার জন্য প্রদর্শিত বিকল্পগুলির মধ্যে একটি বেছে নিন।
- যদি GoogleMapsDemos কে আপনার অবস্থান অ্যাক্সেস করার অনুমতি দিতে বলা হয়, তাহলে Allow নির্বাচন করুন।
শুরু করুন
নমুনা কোডটি চেষ্টা করার আগে, আপনাকে অবশ্যই আপনার ডেভেলপমেন্ট পরিবেশ কনফিগার করতে হবে। আরও তথ্যের জন্য, iOS কোড নমুনার জন্য Maps SDK দেখুন।
কোডটি দেখুন
সুইফট
import GoogleMaps import UIKit final class PolylinesViewController: UIViewController { private lazy var styles: [GMSStrokeStyle] = { let greenStyle = GMSStrokeStyle.gradient(from: .green, to: UIColor.green.withAlphaComponent(0)) let redStyle = GMSStrokeStyle.gradient(from: UIColor.red.withAlphaComponent(0), to: .red) return [greenStyle, redStyle, GMSStrokeStyle.solidColor(UIColor(white: 0, alpha: 0))] }() private var pathLength: Double = 0 private var pos: Double = 0 private var polylines: [GMSPolyline] = [] private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -30, longitude: -175, zoom: 3) return GMSMapView(frame: .zero, camera: camera) }() override func loadView() { view = mapView mapView.accessibilityElementsHidden = true } override func viewDidLoad() { super.viewDidLoad() var path = GMSMutablePath() path.addLatitude(-33.866901, longitude: 151.195988) path.addLatitude(-18, longitude: 179) path.addLatitude(21.291982, longitude: -157.821856) path.addLatitude(37.423802, longitude: -122.091859) path.addLatitude(-12, longitude: -77) path.addLatitude(-33.866901, longitude: 151.195988) path = path.pathOffset(byLatitude: -30, longitude: 0) pathLength = path.length(of: .geodesic) / 21 for i in 0..<30 { let polyline = GMSPolyline(path: path.pathOffset(byLatitude: Double(i) * 1.5, longitude: 0)) polyline.strokeWidth = 8 polyline.geodesic = true polyline.map = mapView polylines.append(polyline) } animatePath() } // Updates the path style every 0.1 seconds. private func animatePath() { polylines.forEach { if let path = $0.path { $0.spans = GMSStyleSpansOffset(path, styles, [NSNumber(value: pathLength)], .geodesic, pos) } } pos -= 50000 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { self.animatePath() } } }
অবজেক্টিভ-সি
#import "GoogleMapsDemos/Samples/PolylinesViewController.h" #import <GoogleMaps/GoogleMaps.h> static CLLocationCoordinate2D kSydneyAustralia = {-33.866901, 151.195988}; static CLLocationCoordinate2D kHawaiiUSA = {21.291982, -157.821856}; static CLLocationCoordinate2D kFiji = {-18, 179}; static CLLocationCoordinate2D kMountainViewUSA = {37.423802, -122.091859}; static CLLocationCoordinate2D kLimaPeru = {-12, -77}; static bool kAnimate = true; @implementation PolylinesViewController { NSArray *_styles; NSArray *_lengths; NSArray *_polys; double _pos, _step; GMSMapView *_mapView; } - (void)tick { for (GMSPolyline *poly in _polys) { poly.spans = GMSStyleSpansOffset(poly.path, _styles, _lengths, kGMSLengthGeodesic, _pos); } _pos -= _step; if (kAnimate) { __weak id weakSelf = self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC / 10), dispatch_get_main_queue(), ^{ [weakSelf tick]; }); } } - (void)initLines { if (!_polys) { NSMutableArray *polys = [NSMutableArray array]; GMSMutablePath *path = [GMSMutablePath path]; [path addCoordinate:kSydneyAustralia]; [path addCoordinate:kFiji]; [path addCoordinate:kHawaiiUSA]; [path addCoordinate:kMountainViewUSA]; [path addCoordinate:kLimaPeru]; [path addCoordinate:kSydneyAustralia]; path = [path pathOffsetByLatitude:-30 longitude:0]; _lengths = @[ @([path lengthOfKind:kGMSLengthGeodesic] / 21) ]; for (int i = 0; i < 30; ++i) { GMSPolyline *poly = [[GMSPolyline alloc] init]; poly.path = [path pathOffsetByLatitude:(i * 1.5) longitude:0]; poly.strokeWidth = 8; poly.geodesic = YES; poly.map = _mapView; [polys addObject:poly]; } _polys = polys; } } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-30 longitude:-175 zoom:3]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.accessibilityElementsHidden = YES; self.view = mapView; _mapView = mapView; CGFloat alpha = 1; UIColor *green = [UIColor colorWithRed:0 green:1 blue:0 alpha:alpha]; UIColor *greenTransp = [UIColor colorWithRed:0 green:1 blue:0 alpha:0]; UIColor *red = [UIColor colorWithRed:1 green:0 blue:0 alpha:alpha]; UIColor *redTransp = [UIColor colorWithRed:1 green:0 blue:0 alpha:0]; GMSStrokeStyle *grad1 = [GMSStrokeStyle gradientFromColor:green toColor:greenTransp]; GMSStrokeStyle *grad2 = [GMSStrokeStyle gradientFromColor:redTransp toColor:red]; _styles = @[ grad1, grad2, [GMSStrokeStyle solidColor:[UIColor colorWithWhite:0 alpha:0]], ]; _step = 50000; [self initLines]; [self tick]; } @end
সম্পূর্ণ নমুনা অ্যাপটি স্থানীয়ভাবে চালান
iOS নমুনা অ্যাপের জন্য Maps SDK GitHub থেকে ডাউনলোড আর্কাইভ হিসেবে পাওয়া যাচ্ছে। iOS নমুনা অ্যাপের জন্য Maps SDK ইনস্টল করে চেষ্টা করে দেখতে এই ধাপগুলি অনুসরণ করুন।
- স্থানীয় ডিরেক্টরিতে নমুনা সংগ্রহস্থল ক্লোন করতে
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gitচালান। একটি টার্মিনাল উইন্ডো খুলুন, যেখানে আপনি নমুনা ফাইলগুলি ক্লোন করেছেন সেই ডিরেক্টরিতে যান এবং GoogleMaps ডিরেক্টরিতে যান:
সুইফট
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojঅবজেক্টিভ-সি
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Xcode প্রজেক্টে, File > Add Package Dependencies এ যান। URL হিসেবে
https://github.com/googlemaps/ios-maps-sdkলিখুন, প্যাকেজটি টেনে আনতে Enter টিপুন এবং Add Package এ ক্লিক করুন। - Xcode-এ, বর্তমান স্কিম ব্যবহার করে অ্যাপ তৈরি করতে কম্পাইল বোতাম টিপুন। বিল্ডটি একটি ত্রুটি তৈরি করে, যার ফলে আপনাকে Swift-এর জন্য
SDKConstants.swiftফাইলে অথবা Objective-C-এর জন্যSDKDemoAPIKey.hফাইলে আপনার API কী লিখতে হবে। - iOS এর জন্য Maps SDK সক্ষম করে আপনার প্রকল্প থেকে একটি API কী পান ।
- Swift এর জন্য
SDKConstants.swiftফাইল অথবা Objective-C এর জন্যSDKDemoAPIKey.hফাইল সম্পাদনা করুন এবং আপনার API কীটিapiKeyঅথবাkAPIKeyধ্রুবকের সংজ্ঞায় পেস্ট করুন। উদাহরণস্বরূপ:সুইফট
static let apiKey = "YOUR_API_KEY"অবজেক্টিভ-সি
static NSString *const kAPIKey = @"YOUR_API_KEY";
-
SDKConstants.swiftফাইল (Swift) অথবাSDKDemoAPIKey.hফাইল (Objective-C) থেকে, নিম্নলিখিত লাইনটি সরিয়ে ফেলুন, কারণ এটি ব্যবহারকারী-সংজ্ঞায়িত সমস্যা নিবন্ধন করতে ব্যবহৃত হয়:সুইফট
#error (Register for API Key and insert here. Then delete this line.)
অবজেক্টিভ-সি
#error Register for API Key and insert here.
- প্রকল্পটি তৈরি করুন এবং চালান। iOS সিমুলেটর উইন্ডোটি প্রদর্শিত হবে, যেখানে Maps SDK ডেমোর একটি তালিকা দেখানো হবে।
- iOS এর জন্য Maps SDK এর একটি বৈশিষ্ট্য নিয়ে পরীক্ষা করার জন্য প্রদর্শিত বিকল্পগুলির মধ্যে একটি বেছে নিন।
- যদি GoogleMapsDemos কে আপনার অবস্থান অ্যাক্সেস করার অনুমতি দিতে বলা হয়, তাহলে Allow নির্বাচন করুন।
শুরু করুন
নমুনা কোডটি চেষ্টা করার আগে, আপনাকে অবশ্যই আপনার ডেভেলপমেন্ট পরিবেশ কনফিগার করতে হবে। আরও তথ্যের জন্য, iOS কোড নমুনার জন্য Maps SDK দেখুন।
কোডটি দেখুন
সুইফট
import GoogleMaps import UIKit final class PolylinesViewController: UIViewController { private lazy var styles: [GMSStrokeStyle] = { let greenStyle = GMSStrokeStyle.gradient(from: .green, to: UIColor.green.withAlphaComponent(0)) let redStyle = GMSStrokeStyle.gradient(from: UIColor.red.withAlphaComponent(0), to: .red) return [greenStyle, redStyle, GMSStrokeStyle.solidColor(UIColor(white: 0, alpha: 0))] }() private var pathLength: Double = 0 private var pos: Double = 0 private var polylines: [GMSPolyline] = [] private lazy var mapView: GMSMapView = { let camera = GMSCameraPosition(latitude: -30, longitude: -175, zoom: 3) return GMSMapView(frame: .zero, camera: camera) }() override func loadView() { view = mapView mapView.accessibilityElementsHidden = true } override func viewDidLoad() { super.viewDidLoad() var path = GMSMutablePath() path.addLatitude(-33.866901, longitude: 151.195988) path.addLatitude(-18, longitude: 179) path.addLatitude(21.291982, longitude: -157.821856) path.addLatitude(37.423802, longitude: -122.091859) path.addLatitude(-12, longitude: -77) path.addLatitude(-33.866901, longitude: 151.195988) path = path.pathOffset(byLatitude: -30, longitude: 0) pathLength = path.length(of: .geodesic) / 21 for i in 0..<30 { let polyline = GMSPolyline(path: path.pathOffset(byLatitude: Double(i) * 1.5, longitude: 0)) polyline.strokeWidth = 8 polyline.geodesic = true polyline.map = mapView polylines.append(polyline) } animatePath() } // Updates the path style every 0.1 seconds. private func animatePath() { polylines.forEach { if let path = $0.path { $0.spans = GMSStyleSpansOffset(path, styles, [NSNumber(value: pathLength)], .geodesic, pos) } } pos -= 50000 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { self.animatePath() } } }
অবজেক্টিভ-সি
#import "GoogleMapsDemos/Samples/PolylinesViewController.h" #import <GoogleMaps/GoogleMaps.h> static CLLocationCoordinate2D kSydneyAustralia = {-33.866901, 151.195988}; static CLLocationCoordinate2D kHawaiiUSA = {21.291982, -157.821856}; static CLLocationCoordinate2D kFiji = {-18, 179}; static CLLocationCoordinate2D kMountainViewUSA = {37.423802, -122.091859}; static CLLocationCoordinate2D kLimaPeru = {-12, -77}; static bool kAnimate = true; @implementation PolylinesViewController { NSArray *_styles; NSArray *_lengths; NSArray *_polys; double _pos, _step; GMSMapView *_mapView; } - (void)tick { for (GMSPolyline *poly in _polys) { poly.spans = GMSStyleSpansOffset(poly.path, _styles, _lengths, kGMSLengthGeodesic, _pos); } _pos -= _step; if (kAnimate) { __weak id weakSelf = self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC / 10), dispatch_get_main_queue(), ^{ [weakSelf tick]; }); } } - (void)initLines { if (!_polys) { NSMutableArray *polys = [NSMutableArray array]; GMSMutablePath *path = [GMSMutablePath path]; [path addCoordinate:kSydneyAustralia]; [path addCoordinate:kFiji]; [path addCoordinate:kHawaiiUSA]; [path addCoordinate:kMountainViewUSA]; [path addCoordinate:kLimaPeru]; [path addCoordinate:kSydneyAustralia]; path = [path pathOffsetByLatitude:-30 longitude:0]; _lengths = @[ @([path lengthOfKind:kGMSLengthGeodesic] / 21) ]; for (int i = 0; i < 30; ++i) { GMSPolyline *poly = [[GMSPolyline alloc] init]; poly.path = [path pathOffsetByLatitude:(i * 1.5) longitude:0]; poly.strokeWidth = 8; poly.geodesic = YES; poly.map = _mapView; [polys addObject:poly]; } _polys = polys; } } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-30 longitude:-175 zoom:3]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.accessibilityElementsHidden = YES; self.view = mapView; _mapView = mapView; CGFloat alpha = 1; UIColor *green = [UIColor colorWithRed:0 green:1 blue:0 alpha:alpha]; UIColor *greenTransp = [UIColor colorWithRed:0 green:1 blue:0 alpha:0]; UIColor *red = [UIColor colorWithRed:1 green:0 blue:0 alpha:alpha]; UIColor *redTransp = [UIColor colorWithRed:1 green:0 blue:0 alpha:0]; GMSStrokeStyle *grad1 = [GMSStrokeStyle gradientFromColor:green toColor:greenTransp]; GMSStrokeStyle *grad2 = [GMSStrokeStyle gradientFromColor:redTransp toColor:red]; _styles = @[ grad1, grad2, [GMSStrokeStyle solidColor:[UIColor colorWithWhite:0 alpha:0]], ]; _step = 50000; [self initLines]; [self tick]; } @end
সম্পূর্ণ নমুনা অ্যাপটি স্থানীয়ভাবে চালান
iOS নমুনা অ্যাপের জন্য Maps SDK GitHub থেকে ডাউনলোড আর্কাইভ হিসেবে পাওয়া যাচ্ছে। iOS নমুনা অ্যাপের জন্য Maps SDK ইনস্টল করে চেষ্টা করে দেখতে এই ধাপগুলি অনুসরণ করুন।
- স্থানীয় ডিরেক্টরিতে নমুনা সংগ্রহস্থল ক্লোন করতে
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gitচালান। একটি টার্মিনাল উইন্ডো খুলুন, যেখানে আপনি নমুনা ফাইলগুলি ক্লোন করেছেন সেই ডিরেক্টরিতে যান এবং GoogleMaps ডিরেক্টরিতে যান:
সুইফট
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojঅবজেক্টিভ-সি
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Xcode প্রজেক্টে, File > Add Package Dependencies এ যান। URL হিসেবে
https://github.com/googlemaps/ios-maps-sdkলিখুন, প্যাকেজটি টেনে আনতে Enter টিপুন এবং Add Package এ ক্লিক করুন। - Xcode-এ, বর্তমান স্কিম ব্যবহার করে অ্যাপ তৈরি করতে কম্পাইল বোতাম টিপুন। বিল্ডটি একটি ত্রুটি তৈরি করে, যার ফলে আপনাকে Swift-এর জন্য
SDKConstants.swiftফাইলে অথবা Objective-C-এর জন্যSDKDemoAPIKey.hফাইলে আপনার API কী লিখতে হবে। - iOS এর জন্য Maps SDK সক্ষম করে আপনার প্রকল্প থেকে একটি API কী পান ।
- Swift এর জন্য
SDKConstants.swiftফাইল অথবা Objective-C এর জন্যSDKDemoAPIKey.hফাইল সম্পাদনা করুন এবং আপনার API কীটিapiKeyঅথবাkAPIKeyধ্রুবকের সংজ্ঞায় পেস্ট করুন। উদাহরণস্বরূপ:সুইফট
static let apiKey = "YOUR_API_KEY"অবজেক্টিভ-সি
static NSString *const kAPIKey = @"YOUR_API_KEY";
-
SDKConstants.swiftফাইল (Swift) অথবাSDKDemoAPIKey.hফাইল (Objective-C) থেকে, নিম্নলিখিত লাইনটি সরিয়ে ফেলুন, কারণ এটি ব্যবহারকারী-সংজ্ঞায়িত সমস্যা নিবন্ধন করতে ব্যবহৃত হয়:সুইফট
#error (Register for API Key and insert here. Then delete this line.)
অবজেক্টিভ-সি
#error Register for API Key and insert here.
- প্রকল্পটি তৈরি করুন এবং চালান। iOS সিমুলেটর উইন্ডোটি প্রদর্শিত হবে, যেখানে Maps SDK ডেমোর একটি তালিকা দেখানো হবে।
- iOS এর জন্য Maps SDK এর একটি বৈশিষ্ট্য নিয়ে পরীক্ষা করার জন্য প্রদর্শিত বিকল্পগুলির মধ্যে একটি বেছে নিন।
- যদি GoogleMapsDemos কে আপনার অবস্থান অ্যাক্সেস করার অনুমতি দিতে বলা হয়, তাহলে Allow নির্বাচন করুন।