افزودن نقشه با نشانگر

این آموزش نحوه افزودن نقشه Google با نشانگر به برنامه iOS را نشان می‌دهد. این آموزش برای افرادی مناسب است که دانش مقدماتی یا متوسطی از Swift یا Objective-C و همچنین دانش عمومی از Xcode دارند. برای راهنمای پیشرفته درباره ایجاد نقشه‌ها، راهنمای توسعه‌دهندگان را بخوانید.

بااستفاده از این آموزش، نقشه زیر را ایجاد خواهید کرد. نشانگر در سیدنی، استرالیا قرار دارد.

نماگرفتی که نقشه‌ای را با نشانگری روی سیدنی نشان می‌دهد

دریافت کد

مخزن نمونه‌های Google Maps iOS را در GitHub شبیه‌سازی یا بارگیری کنید.

یا روی دکمه زیر کلیک کنید تا کد منبع را بارگیری کنید:

کد را به من بده

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
  }
}
      

آبجکتیو-سی

#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

کیت توسعه نرم‌افزار Google Maps برای iOS را می‌توان بااستفاده از مدیر بسته Swift نصب کرد.

  1. هرگونه وابستگی موجود به «کیت توسعه نرم‌افزار Google Maps برای iOS» را بردارید.
  2. یک پنجره ترمینال باز کنید و به دایرکتوری tutorials/map-with-marker بروید.
  3. فضای کاری Xcode را ببندید و فرمان‌های زیر را اجرا کنید:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
    rm Podfile
    rm map-with-marker.xcworkspace
  4. پروژه Xcode را باز کنید و podfile را حذف کنید.
  5. به File (فایل) > Add Package Dependencies (افزودن وابستگی‌های بسته) بروید.
  6. https://github.com/googlemaps/ios-maps-sdk را به‌عنوان نشانی وب وارد کنید، Enter را فشار دهید تا بسته را وارد کنید، و روی Add Package (افزودن بسته) کلیک کنید.
  7. ممکن است لازم باشد حافظه نهان بسته‌تان را بااستفاده از فایل > بسته‌ها > بازنشانی حافظه نهان بسته بازنشانی کنید.

دریافت کلید میانای برنامه‌سازی کاربردی و فعال کردن میاناهای برنامه‌سازی کاربردی لازم

برای تکمیل این آموزش، به کلید Google API نیاز دارید که برای استفاده از کیت توسعه نرم‌افزار Google Maps برای iOS مجاز باشد. برای دریافت کلید و فعال کردن API، روی دکمه زیر کلیک کنید.

شروع به کار

برای جزئیات بیشتر، دریافت کلید میانای برنامه‌سازی کاربردی را ببینید.

کلید میانای برنامه‌سازی کاربردی را به برنامه‌تان اضافه کنید

کلید میانای برنامه‌سازی کاربردی را به‌صورت زیر به AppDelegate.swift اضافه کنید:

  1. توجه داشته باشید که عبارت وارد کردن زیر به فایل اضافه شده است:
    import GoogleMaps
  2. خط زیر را در روش application(_:didFinishLaunchingWithOptions:) ویرایش کنید و YOUR_API_KEY را با کلید میانای برنامه‌سازی کاربردی خودتان جایگزین کنید:
    GMSServices.provideAPIKey("YOUR_API_KEY")

ساختن و اجرای برنامه

  1. دستگاه iOS را به رایانه متصل کنید یا شبیه‌سازی را از منو طرح Xcode انتخاب کنید.
  2. اگر از دستگاه استفاده می‌کنید، مطمئن شوید خدمات مکان فعال باشد. اگر از شبیه‌ساز استفاده می‌کنید، مکانی را از منو ویژگی‌ها انتخاب کنید.
  3. در Xcode، روی گزینه منو محصول/اجرا (یا نماد دکمه پخش) کلیک کنید.
    • Xcode برنامه را می‌سازد و سپس آن را در دستگاه یا شبیه‌ساز اجرا می‌کند.
    • باید نقشه‌ای با نشانگری در مرکز سیدنی در ساحل شرقی استرالیا ببینید، مشابه تصویر موجود در این صفحه.

عیب‌یابی:

  • اگر نقشه‌ای نمی‌بینید، بررسی کنید که کلید API را دریافت کرده باشید و آن را به برنامه اضافه کرده باشید، همان‌طور که قبلاً توضیح داده شد. کنسول اشکال‌زدایی Xcode را برای پیام‌های خطا درباره کلید میانای برنامه‌سازی کاربردی بررسی کنید.
  • اگر کلید میانای برنامه‌سازی کاربردی را با شناسه دسته نرم‌افزاری iOS محدود کرده‌اید، کلید را ویرایش کنید تا شناسه دسته نرم‌افزاری برای برنامه اضافه شود: com.google.examples.map-with-marker.
  • مطمئن شوید اتصال Wi-Fi یا GPS خوبی دارید.
  • از ابزارهای اشکال‌زدایی Xcode برای مشاهده گزارش‌ها و اشکال‌زدایی برنامه استفاده کنید.

درک کردن کد

  1. نقشه‌ای ایجاد کنید و آن را به‌عنوان نما در 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
          

    آبجکتیو-سی

    // 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;
          
  2. نشانگری به نقشه در 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
          

    آبجکتیو-سی

    // 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;
          

به‌طور پیش‌فرض، «کیت توسعه نرم‌افزار Maps برای iOS» محتوای پنجره اطلاعات را وقتی کاربر روی نشانگر تک‌ضرب می‌زند نمایش می‌دهد. اگر می‌خواهید از رفتار پیش‌فرض استفاده کنید، نیازی به افزودن شنونده کلیک برای نشانگر نیست.

تبریک می‌گوییم! برنامه iOS ساخته‌اید که نقشه Google را با نشانگری برای نشان دادن مکان خاصی نمایش می‌دهد. همچنین نحوه استفاده از کیت توسعه نرم‌افزار Google Maps برای iOS را یاد گرفته‌اید.

مراحل بعدی

درباره شیء نقشه و کارهایی که می‌توانید با نشانگرها انجام دهید بیشتر بدانید.