2016-08-02 7 views
5

Я пытаюсь преобразовать адрес местоположения в координаты и открыть его внутри приложения карт, но я получаю эту ошибку при вызове функции. [Client] Geocode error: <private>. Это единственное, что напечатано внутри консоли.Swift 3 частный доступ?

@IBAction func openinmaps(_ sender: AnyObject) { 

    var geocoder: CLGeocoder = CLGeocoder() 
    var location = "1 Infinite Loop" 

    geocoder.geocodeAddressString(location,completionHandler: {(placemarks: [CLPlacemark]?, error: NSError?) -> Void in 
     if (placemarks?.count > 0) { 
      var topResult: CLPlacemark = (placemarks?[0])! 
      var placemark: MKPlacemark = MKPlacemark(placemark: topResult) 

      let regionDistance:CLLocationDistance = 10000 
      let coordinates = CLLocationCoordinate2DMake(placemark.coordinate.latitude, placemark.coordinate.latitude) 
      let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance) 
      let options = [ 
       MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center), 
       MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span) 
      ] 

      let mapItem = MKMapItem(placemark: placemark) 
      mapItem.openInMaps(launchOptions: options) 

      } 
     }) 
    } 
+0

Я вижу то же самое с Objective-C, как и обновление iOS 10/XCode 8 – user1055568

+1

Прокомментируйте свой код, затем начните его переписывать и дайте автозагрузку Xcode привести вас к новому синтаксису –

+0

У меня такая же проблема. Вы нашли решение? –

ответ

0

Мой расширение для CLLocationManagerDelegate случайным образом сбой из-за той же ошибки: [Client] Geocode error: <private> в стремительной 3.0.

Дело в том:

geocoder.reverseGeocodeLocation(startLocation, completionHandler: { 

     placemarks, error in 


    }) 

иногда метка возвращается ноль ...

Итак ... Я понял, что я играл с моей HTTP прокси, чтобы проверить некоторый запрос в Google API с моего устройства с помощью Charles Proxy. Удаление ручного HTTP-прокси-адреса на моем iPhone заставило трюк и геокодер снова работать отлично.

Надеюсь, это поможет.

PD: Nevermind ... через 30 секунд или даже меньше, приложение падает с той же отладки сообщения: [Клиент] Geocode ошибки:

0

Я имел такой же вопрос, кажется, есть предел, когда геокодирования по адрес, и это ошибка для этого.

Моим обходным путем было положить сон (1) после каждого геокода в моей петле, найти широту и долготу местоположения и отправить их обратно в мою базу данных по каждому месту, которое я планировал.

Это означает, что теперь нет необходимости использовать геокодер для построения аннотаций на карте, поскольку он просто использует lat и долго это делает. Это будет работать для фиксированных наборов данных, но для вещей «на лету» вам понадобится другой путь. Видимо, сон (2) позволит вам непрерывно рисовать большие объемы данных, но в конечном итоге требуется время для всего, что нужно для построения.

Я добавил в мою базу данных по умолчанию lat и long 0.0, и после запуска приложения он будет сканировать, чтобы найти любые новые места, а затем геокодировать их и публиковать lat и long back. Я должен был сделать пару проходов изначально, чтобы получить ~ 700 мест в латах и ​​длинных ногах, но с тех пор у меня не было никаких проблем.

Смежные вопросы