Область поиска получить координаты в Swift MKMapView

Как я могу получить координаты области и быстро установить ее в фокусе карты?

У меня есть этот код:

var address = "1 Steve Street, Johannesburg, South Africa"
var geocoder = CLGeocoder()
geocoder.geocodeAddressString(address, {(placemarks: [AnyObject]!, error: NSError!) -> Void in
if let placemark = placemarks?[0] as? CLPlacemark {
    self.mapView.addAnnotation(MKPlacemark(placemark: placemark))
}
})

Но это точка от адреса, как я могу получить только область, например: Johannesburg, и установить ее в качестве основной области фокуса на карте?


person Haring10    schedule 11.11.2014    source источник
comment
нужен этот код для преобразования адреса в широту/длину - спасибо!   -  person Jona    schedule 27.07.2015


Ответы (1)


У метки есть свойство region типа CLCircularRegion (подкласс CLRegion), которое задает координату центра и радиус в метрах.

Используя это с MKCoordinateRegionMakeWithDistance, вы можете создать MKCoordinateRegion, чтобы установить вид карты region.

Пример:

var address = "Johannesburg, South Africa"
var geocoder = CLGeocoder()
geocoder.geocodeAddressString(address, {(placemarks: [AnyObject]!, error: NSError!) -> Void in
    if let placemark = placemarks?[0] as? CLPlacemark {

        if let pmCircularRegion = placemark.region as? CLCircularRegion {

            let metersAcross = pmCircularRegion.radius * 2

            let region = MKCoordinateRegionMakeWithDistance
                  (pmCircularRegion.center, metersAcross, metersAcross)

            self.mapView.region = region
        }

    }
})
person Community    schedule 11.11.2014