Hôm nay mình sẽ hướng dẫn các bạn cách tạo và điều hướng người dùng đến một hoặc nhiều vị trí cố định trên ứng dụng thông qua Bản đồ mặc định của điện thoại

Bước 1

1.1 Khởi tạo 1 Project mới, ở View Controller bạn thêm 1 Button (có thể đổi tên Button thành địa chỉ mà bạn )

1.2 Ánh xạ Button vào class quản trị dưới dạng Action

Bước 2

2.1 Trở về class quản trị

import MapKit

2.2 Khởi tạo function

    func gotoMap(lat: Float, lng: Float, name: String, phone: String) {

        let regionDistance:CLLocationDistance = 1000;
        let coordinates = CLLocationCoordinate2DMake(CLLocationDegrees(lat), CLLocationDegrees(lng))
        let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)

        let options = [MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center), MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span)]

        let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
        let mapItem   = MKMapItem(placemark: placemark)

        mapItem.name  = name
        mapItem.phoneNumber = phone

        MKMapItem.openMaps(with: [mapItem, mapItem], launchOptions: options)

    }

Ở đây, có khá nhiều tuỳ biến cho bạn:

mapItem.name = name            //Bạn có thể tuỳ chọn tên của vị trí của 
mapItem.phoneNumber = phone    //Hoặc số điện

Còn khá nhiều tuỳ biến khác như tên website,....

2.3 Trở về Button mà lúc nãy ta Ánh xạ (Action) thêm vị trí mà bạn , ví dụ:

        let lat:Float = 16.039245
        let lng:Float = 108.218020
        let name: String = "Skylab House"
        let phone:String = "0969 6969 69"

*** Bản đồ sẽ hiển thị vị trí của bạn dựa vào LatitudeLongitude (bạn có thể search Google để hiểu rõ hơn và cách để lấy toạ độ nhé! )

2.4 Đến đây bạn chỉ cần gọi function lúc này bạn khởi tạo và thêm dữ liệu mà bạn muốn vào function đó

gotoMap(lat: lat, lng: lng, name: name, phone: phone)

Bước 3 Run app và trải nghiệm

Toàn bộ Source Code

import UIKit
import MapKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    @IBAction func gotoMyAddress(_ sender: Any) {

        //Create your Address
        let lat:Float = 16.039245
        let lng:Float = 108.218020
        let name: String = "Skylab House"
        let phone:String = "0969 6969 69"

        gotoMap(lat: lat, lng: lng, name: name, phone: phone)

    }

    //create Function
    func gotoMap(lat: Float, lng: Float, name: String, phone: String) {

        let regionDistance:CLLocationDistance = 1000;
        let coordinates = CLLocationCoordinate2DMake(CLLocationDegrees(lat), CLLocationDegrees(lng))
        let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)

        let options = [MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center), MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span)]

        let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
        let mapItem   = MKMapItem(placemark: placemark)

        mapItem.name  = name
        mapItem.phoneNumber = phone

        MKMapItem.openMaps(with: [mapItem, mapItem], launchOptions: options)

    }


}

Chúc các bạn thành công!

Phương Duy

results matching ""

    No results matching ""