শুরু করুন
স্যাম্পেল কোড ব্যবহার করে দেখার আগে, আপনাকে ডেভেলপমেন্ট এনভায়রনমেন্ট কনফিগার করতে হবে। আরও তথ্যের জন্য, iOS-এর জন্য Maps SDK কোড স্যাম্পেল দেখুন।
কোড দেখুন
Swift
import GoogleMaps import UIKit final class MarkerInfoWindowViewController: UIViewController { private let sydneyMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -33.8683, longitude: 151.2086)) private let melbourneMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -37.81969, longitude: 144.966085)) private let brisbaneMarker = GMSMarker( position: CLLocationCoordinate2D(latitude: -27.4710107, longitude: 153.0234489)) private lazy var contentView: UIImageView = { return UIImageView(image: UIImage(named: "aeroplane")) }() override func loadView() { let cameraPosition = GMSCameraPosition(latitude: -37.81969, longitude: 144.966085, zoom: 4) let mapView = GMSMapView(frame: .zero, camera: cameraPosition) mapView.delegate = self view = mapView sydneyMarker.title = "Sydney" sydneyMarker.snippet = "Population: 4,605,992" sydneyMarker.map = mapView melbourneMarker.title = "Melbourne" melbourneMarker.snippet = "Population: 4,169,103" melbourneMarker.map = mapView brisbaneMarker.title = "Brisbane" brisbaneMarker.snippet = "Population: 2,189,878" brisbaneMarker.map = mapView } } extension MarkerInfoWindowViewController: GMSMapViewDelegate { func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? { if marker == sydneyMarker { return contentView } return nil } func mapView(_ mapView: GMSMapView, markerInfoContents marker: GMSMarker) -> UIView? { if marker == brisbaneMarker { return contentView } return nil } func mapView(_ mapView: GMSMapView, didCloseInfoWindowOf marker: GMSMarker) { showToast(message: "Info window for marker \(marker.title ?? "") closed.") } func mapView(_ mapView: GMSMapView, didLongPressInfoWindowOf marker: GMSMarker) { showToast(message: "Info window for marker \(marker.title ?? "") long pressed.") } } extension UIViewController { func showToast(message: String) { let toast = UIAlertController(title: nil, message: message, preferredStyle: .alert) present( toast, animated: true, completion: { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(2)) { toast.dismiss(animated: true) } }) } }
Objective-C
#import "GoogleMapsDemos/Samples/MarkerInfoWindowViewController.h" #import "GoogleMapsDemos/UIViewController+GMSToastMessages.h" #import <GoogleMaps/GoogleMaps.h> @interface MarkerInfoWindowViewController () <GMSMapViewDelegate> @end @implementation MarkerInfoWindowViewController { GMSMarker *_sydneyMarker; GMSMarker *_melbourneMarker; GMSMarker *_brisbaneMarker; UIView *_contentView; } - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969 longitude:144.966085 zoom:4]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; _sydneyMarker = [[GMSMarker alloc] init]; _sydneyMarker.title = @"Sydney"; _sydneyMarker.snippet = @"Population: 4,605,992"; _sydneyMarker.position = CLLocationCoordinate2DMake(-33.8683, 151.2086); _sydneyMarker.map = mapView; NSLog(@"sydneyMarker: %@", _sydneyMarker); _melbourneMarker.map = nil; _melbourneMarker = [[GMSMarker alloc] init]; _melbourneMarker.title = @"Melbourne"; _melbourneMarker.snippet = @"Population: 4,169,103"; _melbourneMarker.position = CLLocationCoordinate2DMake(-37.81969, 144.966085); _melbourneMarker.map = mapView; NSLog(@"melbourneMarker: %@", _melbourneMarker); _brisbaneMarker.map = nil; _brisbaneMarker = [[GMSMarker alloc] init]; _brisbaneMarker.title = @"Brisbane"; _brisbaneMarker.snippet = @"Population: 2,189,878"; _brisbaneMarker.position = CLLocationCoordinate2DMake(-27.4710107, 153.0234489); _brisbaneMarker.map = mapView; NSLog(@"brisbaneMarker: %@", _brisbaneMarker); _contentView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"aeroplane"]]; mapView.delegate = self; self.view = mapView; } #pragma mark GMSMapViewDelegate - (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker { if (marker == _sydneyMarker) { return _contentView; } return nil; } - (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker { if (marker == _brisbaneMarker) { return _contentView; } return nil; } - (void)mapView:(GMSMapView *)mapView didCloseInfoWindowOfMarker:(GMSMarker *)marker { NSString *message = [NSString stringWithFormat:@"Info window for marker %@ closed.", marker.title]; [self gms_showToastWithMessage:message]; } - (void)mapView:(GMSMapView *)mapView didLongPressInfoWindowOfMarker:(GMSMarker *)marker { NSString *message = [NSString stringWithFormat:@"Info window for marker %@ long pressed.", marker.title]; [self gms_showToastWithMessage:message]; } @end
স্থানীয়ভাবে সম্পূর্ণ স্যাম্পেল অ্যাপ রান করুন
iOS-এর জন্য Maps SDK স্যাম্পেল অ্যাপ GitHub থেকে ডাউনলোড আর্কাইভ হিসেবে উপলভ্য। iOS-এর জন্য Maps SDK স্যাম্পেল অ্যাপ ইনস্টল ও ব্যবহার করে দেখতে এইসব ধাপ অনুসরণ করুন।
- লোকাল ডিরেক্টরিতে স্যাম্পেল রিপোজিটরি ক্লোন করতে
git clone https://github.com/googlemaps-samples/maps-sdk-for-ios-samples.gitরান করুন। টার্মিনাল উইন্ডো খুলে, যে ডিরেক্টরিতে স্যাম্পেল ফাইল ক্লোন করেছেন সেখানে নেভিগেট করুন এবং GoogleMaps ডিরেক্টরিতে ড্রিল ডাউন করুন:
Swift
cd maps-sdk-for-ios-samples/GoogleMaps-Swift
open GoogleMapsSwiftXCFrameworkDemos.xcodeprojObjective-C
cd maps-sdk-for-ios-samples-main/GoogleMaps
open GoogleMapsDemos.xcodeproj- Xcode প্রোজেক্টে, ফাইল > প্যাকেজ ডিপেন্ডেন্সি যোগ করুন বিকল্পে যান।
URL হিসেবে
https://github.com/googlemaps/ios-maps-sdkলিখুন, প্যাকেজটি নিয়ে আসার জন্য Enter প্রেস করুন এবং প্যাকেজ যোগ করুন বিকল্পে ক্লিক করুন। - Xcode-এ, বর্তমান স্কিম সহ
অ্যাপ তৈরি করতে
কম্পাইল বোতাম প্রেস করুন। বিল্ডে কোনও সমস্যা হলে, আপনাকে Swift-এর জন্য
SDKConstants.swiftফাইলে অথবা Objective-C-এর জন্যSDKDemoAPIKey.hফাইলে API key লিখতে বলা হবে। - iOS-এর জন্য Maps SDK চালু আছে এমন প্রোজেক্ট থেকে API কী পান।
- Swift-এর জন্য
SDKConstants.swiftফাইল অথবাSDKDemoAPIKey.hObjective-C-এর জন্য ফাইল এডিট করুন এবং আপনার API কীapiKeyঅথবাkAPIKeyকনস্ট্যান্টের সংজ্ঞায় পেস্ট করুন। যেমন:Swift
static let apiKey = "YOUR_API_KEY"Objective-C
static NSString *const kAPIKey = @"YOUR_API_KEY";
SDKConstants.swiftফাইল (Swift) বাSDKDemoAPIKey.hফাইল (Objective-C)-এ, নিম্নলিখিত লাইনটি সরিয়ে দিন, কারণ এটি ব্যবহারকারীর-নির্ধারিত সমস্যা রেজিস্টার করতে ব্যবহার করা হয়:Swift
#error (Register for API Key and insert here. Then delete this line.)
Objective-C
#error Register for API Key and insert here.
- প্রোজেক্ট তৈরি করে রান করুন। iOS সিমুলেটর উইন্ডো দেখা যাবে, যেখানে Maps SDK ডেমো-এর তালিকা দেখানো হবে।
- iOS-এর জন্য Maps SDK-এর কোনও ফিচার নিয়ে পরীক্ষা করতে, দেখানো বিকল্পগুলির মধ্যে থেকে একটি বেছে নিন।
- GoogleMapsDemos-কে আপনার লোকেশন অ্যাক্সেস করার অনুমতি দিতে বলা হলে, অনুমতি দিন বিকল্পটি বেছে নিন।