2016-06-14 11 views
0

Swiftのロケーション名文字列に変換するGoogleマップのマーカーの緯度と経度の位置があります。これを行う最善の方法は何ですか? マーカーの位置情報を表示したいのですが、どうすればいいのかわかりません。ここスワイプでクリックするとマーカーアドレス(ストリートアドレス)が表示されます

私はマーカーを追加し、緯度と経度を取得するために使用私のコードです:

func mapView(mapView: GMSMapView, didLongPressAtCoordinate coordinate: CLLocationCoordinate2D) { 
     if counterMarker < 2 
     { 
      counterMarker += 1 
      let marker = GMSMarker(position: coordinate) 
      marker.appearAnimation = kGMSMarkerAnimationPop 

       marker.map = mapView 
      marker.position.latitude = coordinate.latitude 
      marker.position.longitude = coordinate.longitude 

      print(marker.position.latitude) 
      print(marker.position.longitude) 


      } 
    } 
+0

の可能性のある重複: http://stackoverflow.com/questions/19025148/ios-7- add-overlay-crash-app/http://stackoverflow.com/questions/6721124/app-crashing-when-i-add-overlay-to-mkmapview/http://stackoverflow.com/questions/31390630/exc-悪いアクセスを使用するgmaps-sdk-1-9-0-xcode-6-4-run-on-8-3-device/http://stackoverflow.com/questions/31264537/adding-google-maps- as-subview-crashes-ios-app-exc-bad-bad/http://stackoverflow.com/questions/24837295/how-to-solve-this-exc-bad-accesscode-exc-i38 6-gpflt-in-swift-programming –

答えて

2
func mapView(mapView: GMSMapView, didLongPressAtCoordinate coordinate: CLLocationCoordinate2D) { 
      if counterMarker < 2 
      { 
       counterMarker += 1 
       let marker = GMSMarker(position: coordinate) 
       marker.appearAnimation = kGMSMarkerAnimationPop 

        marker.map = mapView 
       marker.position.latitude = coordinate.latitude 
       marker.position.longitude = coordinate.longitude 

        self.getAddressForLatLng(String(format: "%@",marker.position.latitude), longitude:String(format: "%@",marker.position.longitude) 

       } 
     } 


    func getAddressForLatLng(latitude: String, longitude: String) { 
     let url = NSURL(string: "https://maps.googleapis.com/maps/api/geocode/json?latlng=\(latitude),\(longitude)&key=YOUR-APIKEY") 
     let data = NSData(contentsOfURL: url!) 
     let json = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary 
     if let result = json["results"] as? NSArray { 
      if let address = result[0]["address_components"] as? NSArray { 
       let number = address[0]["short_name"] as! String 
       let street = address[1]["short_name"] as! String 
       let city = address[2]["short_name"] as! String 
       let state = address[4]["short_name"] as! String 
       let zip = address[6]["short_name"] as! String 
       print("\n\(number) \(street), \(city), \(state) \(zip) \(address)") 
      } 
     } 
    } 
+0

私はこのエラーがあります: 'sendSynchronousRequest(_:returningResponse :)'は、iOS 9.0では廃止されました:[NSURLSession dataTaskWithRequest:completionHandler:]を使用してください(NSURLSession.hを参照してください!私のアプリでアドレスが表示されない –

+0

このコードを私が一度追加しました –

+0

これ以上マーカーを作ることはできません! self.getAddressForLatLng(String(format: "%@"、marker.position.latitude)、longitude:String(形式: "%@"、marker.position.longitude)) –

関連する問題