我在我的Google地圖中繪製折線。當用戶點擊該線路時。標記將顯示和infowindow。但不是用戶正確使用它的地方。顯示標記用戶在折線中點按的位置
我如何知道用戶在該行中點擊的座標(lat,long)?
我想下面的功能正在被'didTap覆蓋」的方法
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
}
感謝重寫!
我在我的Google地圖中繪製折線。當用戶點擊該線路時。標記將顯示和infowindow。但不是用戶正確使用它的地方。顯示標記用戶在折線中點按的位置
我如何知道用戶在該行中點擊的座標(lat,long)?
我想下面的功能正在被'didTap覆蓋」的方法
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
}
感謝重寫!
首先,我想說,你必須創建多線絲錐能:
GMSPolyline *poly = [GMSPolyline polylineWithPath:path];
poly.strokeColor = [UIColor purpleColor];
poly.tappable = TRUE; // this is important
poly.map = self.googleMapView;
poly.title = routestring;
然後使用:
-(void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay{
NSString *path = overlay.title;
NSArray *pathparts = [path pathComponents];
NSString *lat = [pathparts objectAtIndex:0]; //get lat
NSString *lng = [pathparts objectAtIndex:1]; // get lng
NSString *lnkID = [pathparts objectAtIndex:2];
// Create a marker and plot on Map
GMSMarker *mk = [GMSMarker arkerWithPosition:CLLocationCoordinate2DMake([lat doubleValue],[lng doubleValue])];
mk.title = overlay.title;
mk.snippet = @"ROUTE DATA";
mk.map = self.googleMapView;
//This will popup a marker window
[self.googleMapView setSelectedMarker:mk];
}
如果使用快捷使用這種方法:
func mapView(mapView: GMSMapView!, didTapOverlay overlay: GMSOverlay!) {
}
這裏是轉換成swift兄弟的代碼。
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
var path = overlay.title
var pathparts = path.pathComponents()
var lat = pathparts[0]
var lng = pathparts[1]
var lnkID = pathparts[2]
var mk = GMSMarker.arker(withPosition: CLLocationCoordinate2DMake(lat.doubleValue, lng.doubleValue))
mk.title = overlay.title
mk.snippet = "ROUTE DATA"
mk.map = self.googleMapView
self.googleMapView.selectedMarker = mk
}
我使用SWIFT .... –
請轉換代碼的語法快捷的方法是: FUNC MapView類(MapView類:GMSMapView中!didTapOverlay覆蓋:GMSOverlay){ } –
你可能誤會了我的題。我需要在用戶點擊的位置顯示標記。 –