iOS google maps sdk GMSMarker 定位
Posted
技术标签:
【中文标题】iOS google maps sdk GMSMarker 定位【英文标题】:iOS google maps sdk GMSMarker positioning 【发布时间】:2013-05-17 05:04:22 【问题描述】:我正在使用 Google 地图,我可以使用 GMSMarker 将地图居中放置
GMSCameraPosition *camera =
[[GMSCameraPosition alloc] initWithTarget:marker.position
zoom:MAP_ZOOM_LEVEL
bearing:0
viewingAngle:0];
[mapView animateToCameraPosition:camera];
我正在显示一个大小为 200*150 的自定义标注,当相机位置发生变化时,它的一部分会被隐藏,但我希望标注位于中心并且地图点位于其下方。任何想法如何做到这一点。
【问题讨论】:
【参考方案1】:看看使用GMSProjection。要将地图的中心从标记位置移动 100 像素,您可以执行以下操作:
- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker
CGPoint point = [mapView_.projection pointForCoordinate:marker.position];
point.x = point.x + 100;
GMSCameraUpdate *camera =
[GMSCameraUpdate setTarget:[mapView_.projection coordinateForPoint:point]];
[mapView_ animateWithCameraUpdate:camera];
return YES;
【讨论】:
我试过了,但地图以标记为中点居中。 是的,我写的代码就是这样做的。您需要将 point.x 和 point.y 修改为您想要的任何偏移量。 我在 x 和 y 上都加了 1000,同样的事情正在发生。 是的,我已经正确设置了它,它也被调用了。 遇到了同样的问题。我正在返回 false 并且此方法结束,请检查您是否返回 true。那么上面的解决方案就可以了!【参考方案2】:斯威夫特 4、3
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool
var point:CGPoint = mapView.projection.point(for: marker.position)
point.x = point.x + 100
let camera:GMSCameraUpdate = GMSCameraUpdate.setTarget(mapView.projection.coordinate(for: point))
mapView.animate(with: camera)
return true
【讨论】:
以上是关于iOS google maps sdk GMSMarker 定位的主要内容,如果未能解决你的问题,请参考以下文章
iOS 中使用 nativescript-google-maps-sdk 的地图中心错误