Создайте изображение карты по широте и долготе в ios swift4 - PullRequest
0 голосов
/ 07 февраля 2019

Через API у меня есть широта и долгота для конкретного местоположения, необходимо показать эти координаты на виде изображения в виде карты.Я хочу нарисовать изображение карты , хотя эти координаты.Хотите показать конкретное местоположение, а также в лат.Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2019

Вместо того, чтобы сделать снимок карты и затем показать его в imageview, поместите туда mapview.Установите желаемое местоположение на карте.И отключите пользовательское взаимодействие mapview.

Ниже приведен соответствующий код.

let location = GMSCameraPosition.camera(withLatitude: yourLatitude, longitude: yourLongitude, zoom: 17.0) // Set zoom level according to your requirement
mapView.animate(to: location)
0 голосов
/ 08 февраля 2019
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    if locationUpdate == false {
        locationUpdate = true
        guard let locValue: CLLocationCoordinate2D = manager.location?.coordinate else { return }
        print("locations = \(locValue.latitude) \(locValue.longitude)")
        var latStr = ""
        var longStr = ""
        latStr = String(locValue.latitude)
        longStr = String(locValue.longitude)

        let staticMapUrl = "http://maps.google.com/maps/api/staticmap?markers=color:blue|\(latStr),\(longStr)&\("zoom=10&size=400x300")&sensor=true&key=AIzaSyBXAdCe4nJuapECudMeh4q-gGlU-yAMQX0"

        print(staticMapUrl)

        let url = URL(string: staticMapUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)

        do {
            let data = try NSData(contentsOf: url!, options: NSData.ReadingOptions())
            imgLocationOnMap.image = UIImage(data: data as Data)
        } catch {
            imgLocationOnMap.image = UIImage()
        }


    }
}
0 голосов
/ 07 февраля 2019

Я не знаю, читали ли вы документы, мое решение было таким

func zoomToLocation(with coordinate: CLLocationCoordinate2D) {
    //You can change the meters as you wish
    let region = MKCoordinateRegion(center: coordinate, latitudinalMeters: 5000, longitudinalMeters: 5000)
    map.setRegion(region, animated: true)
}

И вы можете заблокировать зум с помощью этого кода

map.isZoomEnabled = false
...