یک نقشه با نشانگر اضافه کنید

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

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

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

کد را دریافت کنید

مخزن نمونه های iOS نقشه های گوگل را در GitHub شبیه سازی یا دانلود کنید.

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

کد را به من بدهید

سریع

/*
 * Copyright 2020 Google Inc. All rights reserved.
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

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 mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera)
        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
  }
}

      

هدف-C

/*
* Copyright 2020 Google Inc. All rights reserved.
*
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

#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];
  GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
  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

      

شروع کنید

مدیر بسته سوئیفت

Maps SDK برای iOS را می توان با استفاده از Swift Package Manager نصب کرد.

  1. اطمینان حاصل کنید که نقشه های SDK موجود برای وابستگی های iOS را حذف کرده اید.
  2. یک پنجره ترمینال را باز کنید و به دایرکتوری tutorials/mapwithmarker بروید.
  3. مطمئن شوید که فضای کاری Xcode شما بسته است و دستورات زیر را اجرا کنید:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
    rm Podfile
    rm map-with-marker.xcworkspace
  4. پروژه Xcode خود را باز کنید و پادفایل را حذف کنید.
  5. به File > Add Package Dependencies بروید.
  6. https://github.com/googlemaps/ios-maps-sdk را به عنوان URL وارد کنید، Enter را فشار دهید تا بسته را وارد کنید و روی Add Package کلیک کنید.
  7. ممکن است لازم باشد کش بسته خود را با استفاده از File > Packages > Reset Package Cache بازنشانی کنید.

از CocoaPods استفاده کنید

  1. Xcode نسخه 14.0 یا بالاتر را دانلود و نصب کنید.
  2. اگر قبلاً CocoaPods ندارید، با اجرای دستور زیر از ترمینال، آن را روی macOS نصب کنید:
    sudo gem install cocoapods
  3. به دایرکتوری tutorials/map-with-marker بروید.
  4. دستور pod install را اجرا کنید. با این کار Maps SDK مشخص شده در Podfile به همراه هر گونه وابستگی نصب می شود.
  5. برای مقایسه نسخه پاد نصب شده با هر به‌روزرسانی جدید pod outdated اجرا کنید. اگر نسخه جدیدی شناسایی شد، pod update اجرا کنید تا Podfile به‌روزرسانی شود و آخرین SDK نصب شود. برای جزئیات بیشتر، به راهنمای CocoaPods مراجعه کنید.
  6. فایل map-with-marker.xcworkspace پروژه را باز کنید (دوبار کلیک کنید) تا در Xcode باز شود. برای باز کردن پروژه باید از فایل .xcworkspace استفاده کنید.

یک کلید API دریافت کنید و API های لازم را فعال کنید

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

شروع کنید

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

کلید API را به برنامه خود اضافه کنید

کلید API خود را به صورت زیر به AppDelegate.swift خود اضافه کنید:

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

اپلیکیشن خود را بسازید و اجرا کنید

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

عیب یابی:

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

کد را درک کنید

  1. یک نقشه ایجاد کنید و آن را به عنوان نمای در viewDidLoad() تنظیم کنید.

    سریع

    // 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 mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    view = mapView
          

    هدف-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];
    GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera];
    self.view = mapView;
          
  2. در viewDidLoad() یک نشانگر به نقشه اضافه کنید.

    سریع

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

    هدف-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;
          

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

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

مراحل بعدی

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