當用戶點擊的覆蓋,下面的代碼被觸發:獲取LAT和LONG
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
}
我懷疑我們是否可以提取具有覆蓋的精確的緯度和經度座標被挖掘?
謝謝!
當用戶點擊的覆蓋,下面的代碼被觸發:獲取LAT和LONG
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
}
我懷疑我們是否可以提取具有覆蓋的精確的緯度和經度座標被挖掘?
謝謝!
如果您只是希望獲得精確的座標,無論您是否在Overlay上進行挖掘,那麼還有另一個GMSMapViewDelegate
的代理,每當我們點擊GoogleMaps
時都會調用該代理。在這個代表中,您可以獲得您在地圖上點擊的確切座標,而無需在疊加層上進行點擊。
雨燕3.0
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
print(coordinate.latitude)
print(coordinate.longitude)
}
如果你想只在敲擊標記座標,然後用這個委託方法
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
print(marker.position.latitude)
print(marker.position.longitude)
return true
}
確保讓您的疊加層不可點擊
overlay.isTappable = false
更多信息參見here
我在地圖上繪製了一條多段線,我需要把它打開。所以我需要'overlay.isTappable = true'。 –
@JaysonTamayo我想''GoogleMapsSDK'中沒有方法可以給你攻絲疊加的確切座標。你只能接收到一個你點擊一個疊加層的事件,但不會在點擊疊加層時獲得座標,因爲'GMSOverlay'類沒有座標選項。 –
應該有另一種方式。有沒有可能有'didTapAt'同時也聽重疊點擊? –
爲了解決這個問題,我們需要的2種方法一起, 所以我的方式,我希望它會在這個問題上幫助它們結合在一起:
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
print(overlay)
}
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
print(coordinate)
for polyline in polylines {
if GMSGeometryIsLocationOnPath(coordinate, polyline.path!, true) {
self.mapView(mapView, didTap: polyline)
}
}
for polygon in polygons {
if GMSGeometryContainsLocation(coordinate, polygon.path!, true) {
self.mapView(mapView, didTap: polygon)
}
}
}
如果用戶點擊了coordinate
我們會解決這個問題,然後檢查,如果這coordinate
包含在任何Polyline
或Polygon
我們之前已經確定,所以我們fire
爲overlay
事件didTap overlay
。
確保創建polylines
和polygons
isTappable = false
而但考慮到這一事件會爲每overlay
竊聽即使如果他們是overlaped
,你可以把return
當if
成功拿被解僱第一個overlay
只有
查看我的回答 –