URL карты Google - как мне показать адрес при переходе по латинскому и длинному URL в Google Maps в iOS? - PullRequest
0 голосов
/ 26 апреля 2019

Моя проблема в том, что когда я открываю Google Map , используя следующий код.

Показывает лат длинный вместо адреса.Но я хочу показать адрес на карте Google, или есть ли способ передать пользовательский адрес вместе с широтой, чтобы карта Google показывала пользовательский адрес в строке поиска (в верхней части изображения) и показывала точное местоположение на карте с маркером.

Я следовал документации по URLSchemes, предоставленной Google. ios-urlscheme

Но не смог найти правильного решения, которое бы соответствовало моим условиям.

UIApplication.shared.openURL(URL(string: "comgooglemaps://?q=40.00026321411133,-83.03424072265625&center=40.00026321411133,-83.03424072265625"))

enter image description here

1 Ответ

0 голосов
/ 26 апреля 2019

Вы должны передать адрес места проведения также с лат-длинной:

import UIKit
import MapKit

func openMapForPlace() {

    let lat1 : NSString = self.venueLat
    let lng1 : NSString = self.venueLng

    let latitude:CLLocationDegrees =  lat1.doubleValue
    let longitude:CLLocationDegrees =  lng1.doubleValue

    let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
    let address = [CNPostalAddressStreetKey: address ?? "",
                   CNPostalAddressCityKey: city ?? "",
                   CNPostalAddressStateKey: state ?? "",
                   CNPostalAddressPostalCodeKey: zipCode,
                   CNPostalAddressISOCountryCodeKey: isoCountryCodeKey ?? ""]
    let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: address)
    let mapItem = MKMapItem(placemark: placemark)
    mapItem.name = "\(self.venueName)"
    let launchOptions = [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving]
    mapItem.openInMaps(launchOptions: launchOptions)
}

В swift код будет ниже:

import UIKit
import MapKit
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        openMapForPlace()
    }

    func openMapForPlace() {

        let latitude: CLLocationDegrees = 39.9517958
        let longitude: CLLocationDegrees = -75.1611398

        let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
        let address = [CNPostalAddressStreetKey: "1234 Market St",
                   CNPostalAddressCityKey: "Philadelphia",
                   CNPostalAddressStateKey: "Pennsylvania",
                   CNPostalAddressPostalCodeKey: "19107",
                   CNPostalAddressISOCountryCodeKey: "USA"]
        let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: address)
        let mapItem = MKMapItem(placemark: placemark)
        mapItem.name = "1234 Market St, Philadelphia, Pennsylvania, 19107"
        let launchOptions = [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving]
        mapItem.openInMaps(launchOptions: launchOptions)
    }
}
...