मार्कर के साथ मैप जोड़ना
इस ट्यूटोरियल में, अपने iOS ऐप्लिकेशन में मार्कर के साथ Google मैप जोड़ने का तरीका बताया गया है. यह ट्यूटोरियल उन लोगों के लिए है जिन्हें Swift या Objective-C के बारे में बुनियादी या सामान्य जानकारी है. साथ ही, Xcode के बारे में सामान्य जानकारी है. मैप बनाने के बारे में ज़्यादा जानकारी पाने के लिए, डेवलपर गाइड पढ़ें.
इस ट्यूटोरियल का इस्तेमाल करके, यह मैप बनाया जा सकता है. मार्कर, ऑस्ट्रेलिया के सिडनी शहर पर है.
कोड प्राप्त करें
GitHub पर Google Maps iOS के सैंपल की रिपॉज़िटरी को क्लोन या डाउनलोड करें.
इसके अलावा, सोर्स कोड को डाउनलोड करने के लिए, इस बटन को दबाएं:
Swift
import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let options = GMSMapViewOptions() options.camera = camera options.frame = self.view.frame let mapView = GMSMapView(options: options) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
#import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; options.frame = self.view.frame; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
अपनी प्रोफ़ाइल बनाना शुरू करें
Swift Package Manager
iOS के लिए Maps SDK को Swift Package Manager का इस्तेमाल करके इंस्टॉल किया जा सकता है.
- iOS के लिए Maps SDK की मौजूदा डिपेंडेंसी हटाएं.
- कोई टर्मिनल विंडो खोलें और
tutorials/map-with-markerडायरेक्ट्री पर जाएं. - Xcode फ़ाइल बंद करें और ये कमांड दें:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- अपना Xcode प्रोजेक्ट खोलें और podfile मिटाएं.
- File > Add Package Dependencies पर जाएं.
- यूआरएल के तौर पर https://github.com/googlemaps/ios-maps-sdk डालें. इसके बाद, पैकेज को पुल करने के लिए Enter दबाएं और Add Package पर क्लिक करें.
- आपको File > Packages > Reset Package Cache का इस्तेमाल करके, पैकेज कैश मेमोरी को रीसेट करना पड़ सकता है.
एपीआई पासकोड पाना और ज़रूरी एपीआई चालू करना
इस ट्यूटोरियल को पूरा करने के लिए, आपके पास Google का ऐसा एपीआई पासकोड होना चाहिए जिसे iOS के लिए Maps SDK का इस्तेमाल करने की अनुमति मिली हो. कुंजी पाने और एपीआई को चालू करने के लिए, इस बटन पर क्लिक करें.
शुरू करेंज़्यादा जानकारी के लिए, एपीआई पासकोड पाना लेख पढ़ें.
अपने ऐप्लिकेशन में एपीआई पासकोड जोड़ना
अपने AppDelegate.swift में एपीआई पासकोड जोड़ने के लिए, यह तरीका अपनाएं:
- ध्यान दें कि फ़ाइल में यह इंपोर्ट स्टेटमेंट जोड़ा गया है:
import GoogleMaps
- अपने
application(_:didFinishLaunchingWithOptions:)तरीके में, इस लाइन में बदलाव करें. इसके लिए, YOUR_API_KEY को अपने एपीआई पासकोड से बदलें:GMSServices.provideAPIKey("YOUR_API_KEY")
अपना ऐप्लिकेशन बनाना और उसे चलाना
- किसी iOS डिवाइस को अपने कंप्यूटर से कनेक्ट करें या Xcode स्कीम मेन्यू से कोई सिम्युलेटर चुनें.
- अगर किसी डिवाइस का इस्तेमाल किया जा रहा है, तो पक्का करें कि जगह की जानकारी की सुविधा चालू हो. अगर सिम्युलेटर का इस्तेमाल किया जा रहा है, तो सुविधाएं मेन्यू से कोई जगह चुनें.
- Xcode में, Product/Run मेन्यू विकल्प (या प्ले बटन आइकॉन) पर क्लिक करें.
- Xcode, ऐप्लिकेशन को बिल्ड करता है. इसके बाद, ऐप्लिकेशन को डिवाइस या सिम्युलेटर पर चलाता है.
- आपको ऑस्ट्रेलिया के पूर्वी तट पर सिडनी पर फ़ोकस करने वाला मार्कर दिखेगा. यह इस पेज पर मौजूद इमेज जैसा होगा.
समस्या का हल:
- अगर आपको मैप नहीं दिखता है, तो देखें कि आपको एपीआई पासकोड मिला है या नहीं. साथ ही, यह भी देखें कि आपने उसे ऐप्लिकेशन में जोड़ा है या नहीं. इसके बारे में पहले बताया गया है. एपीआई पासकोड से जुड़ी गड़बड़ी के मैसेज देखने के लिए, Xcode का डीबग कंसोल देखें.
- अगर आपने iOS बंडल आइडेंटिफ़ायर के हिसाब से एपीआई पासकोड पर पाबंदी लगाई है, तो पासकोड में बदलाव करके ऐप्लिकेशन के लिए बंडल आइडेंटिफ़ायर जोड़ें:
com.google.examples.map-with-marker. - पक्का करें कि आपके पास अच्छा वाई-फ़ाई या जीपीएस कनेक्शन हो.
- लॉग देखने और ऐप्लिकेशन को डीबग करने के लिए, Xcode डीबग करने वाले टूल का इस्तेमाल करें.
कोड को समझना
- एक मैप बनाएं और उसे
viewDidLoad()में व्यू के तौर पर सेट करें.Swift
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let options = GMSMapViewOptions() options.camera = camera let mapView = GMSMapView(options: options) view = mapView
Objective-C
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6.0]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; self.view = mapView;
viewDidLoad()में मैप पर मार्कर जोड़ें.Swift
// Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView
Objective-C
// Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView;
डिफ़ॉल्ट रूप से, iOS के लिए Maps SDK, जानकारी वाली विंडो का कॉन्टेंट तब दिखाता है, जब उपयोगकर्ता किसी मार्कर पर टैप करता है. अगर आपको डिफ़ॉल्ट ऐक्शन और सेटिंग का इस्तेमाल करना है, तो मार्कर के लिए क्लिक लिसनर जोड़ने की ज़रूरत नहीं है.
बधाई हो! आपने एक iOS ऐप्लिकेशन बनाया है, जो किसी खास जगह को दिखाने के लिए मार्कर के साथ Google मैप दिखाता है. आपने iOS के लिए Maps SDK को इस्तेमाल करने का तरीका भी सीखा है.
अगले चरण
मैप ऑब्जेक्ट के बारे में ज़्यादा जानें. साथ ही, यह भी जानें कि मार्कर की मदद से क्या-क्या किया जा सकता है.