เพิ่มแผนที่พร้อมเครื่องหมาย

บทแนะนำนี้แสดงวิธีเพิ่มแผนที่ 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 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
  }
}
      

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

เริ่มต้นใช้งาน

Swift Package Manager

คุณสามารถติดตั้ง Maps SDK สำหรับ iOS ได้โดยใช้ Swift Package Manager

  1. นำทรัพยากร Dependency ของ Maps SDK สำหรับ 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. ไปที่ไฟล์ > เพิ่มทรัพยากร Dependency ของแพ็กเกจ
  6. ป้อน https://github.com/googlemaps/ios-maps-sdk เป็น URL กด Enter เพื่อดึงแพ็กเกจ แล้วคลิกAdd Package
  7. คุณอาจต้องรีเซ็ตแคชแพ็กเกจโดยใช้ไฟล์ > แพ็กเกจ > รีเซ็ตแคชแพ็กเกจ

ใช้ CocoaPods

  1. ดาวน์โหลดและติดตั้ง Xcode เวอร์ชัน 26.0 ขึ้นไป
  2. หากยังไม่มี CocoaPods, ติดตั้งใน macOS โดยเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล:
    sudo gem install cocoapods
  3. ไปที่ไดเรกทอรี tutorials/map-with-marker
  4. เรียกใช้คำสั่ง pod install ซึ่งจะติดตั้ง Maps SDK ที่ระบุไว้ใน Podfile พร้อมกับทรัพยากร Dependency
  5. เรียกใช้ pod outdated เพื่อเปรียบเทียบเวอร์ชัน Pod ที่ติดตั้งกับเวอร์ชันใหม่ หากระบบตรวจพบเวอร์ชันใหม่ ให้เรียกใช้ 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 GoogleMaps
  2. แก้ไขบรรทัดต่อไปนี้ในเมธอด application(_:didFinishLaunchingWithOptions:) โดยแทนที่ YOUR_API_KEY ด้วยคีย์ API
    GMSServices.provideAPIKey("YOUR_API_KEY")

สร้างและเรียกใช้แอป

  1. เชื่อมต่ออุปกรณ์ iOS กับคอมพิวเตอร์ หรือเลือก เครื่องจำลอง จากเมนู Scheme ของ Xcode
  2. หากใช้อุปกรณ์จริง ให้ตรวจสอบว่าได้เปิดใช้บริการตำแหน่งแล้ว หากใช้เครื่องจำลอง ให้เลือกตำแหน่งจากเมนู ฟีเจอร์
  3. ใน Xcode ให้คลิกตัวเลือกเมนู Product/Run (หรือไอคอนปุ่ม เล่น)
    • Xcode จะสร้างแอป แล้วเรียกใช้แอปในอุปกรณ์หรือในเครื่องจำลอง
    • คุณควรเห็นแผนที่พร้อมเครื่องหมายที่อยู่ตรงกลางซิดนีย์บนชายฝั่งตะวันออกของออสเตรเลีย ซึ่งคล้ายกับรูปภาพในหน้านี้

การแก้ปัญหา:

  • หากไม่เห็นแผนที่ ให้ตรวจสอบว่าคุณได้รับคีย์ API และเพิ่มคีย์ดังกล่าวลงในแอปแล้ว ตามที่อธิบายไว้ก่อนหน้านี้ ตรวจสอบ คอนโซลการแก้ไขข้อบกพร่องของ Xcode ว่ามีข้อความแสดงข้อผิดพลาดเกี่ยวกับคีย์ API หรือไม่
  • หากคุณจำกัดคีย์ API ด้วยตัวระบุชุด 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 mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    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];
    GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera];
    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
          

    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;
          

โดยค่าเริ่มต้น Maps SDK สำหรับ iOS จะแสดงเนื้อหาของหน้าต่างข้อมูลเมื่อผู้ใช้แตะเครื่องหมาย คุณไม่จำเป็นต้องเพิ่ม Listener การคลิกสำหรับตัวทำเครื่องหมายหากพอใจที่จะใช้ลักษณะการทำงานเริ่มต้น

ยินดีด้วย คุณได้สร้างแอป iOS ที่แสดงแผนที่ Google พร้อมเครื่องหมายเพื่อระบุสถานที่หนึ่งๆ และยังได้เรียนรู้วิธีใช้ Maps SDK สำหรับ iOS ด้วย

ขั้นตอนถัดไป

ดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์แผนที่และสิ่งที่คุณ ทำได้ด้วยเครื่องหมาย