快速点击显示标记地址(街道地址)

Posted

技术标签:

【中文标题】快速点击显示标记地址(街道地址)【英文标题】:Show marker address (street-Address) with clicking in swift 【发布时间】:2016-06-14 06:19:22 【问题描述】:

我在谷歌地图中有一个标记的纬度和经度位置,我想将其转换为 Swift 中的位置名称字符串。做这个的最好方式是什么? 我想显示标记的位置地址,但我不知道该怎么做。

这是我用来添加标记和获取纬度和经度的代码:

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)


            
    

【问题讨论】:

可能重复:***.com/questions/19025148/… / ***.com/questions/6721124/… / ***.com/questions/31390630/… / ***.com/questions/31264537/… / ***.com/questions/24837295/… 【参考方案1】:
    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)")
            
        
    

【讨论】:

我有这个错误:'sendSynchronousRequest(_:returningResponse:)' 在 ios 9.0 中被弃用:使用 [NSURLSession dataTaskWithRequest:completionHandler:] (见 NSURLSession.h!!我没有看到任何我的应用中的地址 现在它不能再做任何标记了!和错误是这一行: self.getAddressForLatLng(String(format: "%@",marker.position.latitude), longitude:String(format: "%@",marker.position.longitude)) 当我点击屏幕做标记时,我看到了这个线程:线程 1:EXC_BAD_ACCESS(code=1,address=0x4041e097014cefe)

以上是关于快速点击显示标记地址(街道地址)的主要内容,如果未能解决你的问题,请参考以下文章

用高德地图怎么查找自己在哪个镇?哪条街道?

安卓。谷歌地图API实现标记点击

javascript调用百度地图通过ip定位 手机浏览器打开浏览不显示街道地址

拼多多token怎么购物

Android。点击标记后的Google map API工具

如何快速在百度地图上标记多个地点