我在我的应用中使用谷歌地图。我正在使用一个标记。我想要两件事
当我点击地图上的任何位置时,我的标记应自动动画到该位置。我在这方面很成功。
当我长时间点击标记时,它应该动画起来并随着我的触摸移动。当我释放触摸时,它应该拖到那里。
我在第二种情况下遇到问题。我已将标记的draggable属性设置为true。没有其他代码被写入。当我长按它而不是标记时,整个地图和地图一起移动,然后标记移动到我的触摸。当我释放触摸整个地图时,标记会稍微向下移动。
有什么建议吗?
答案 0 :(得分:3)
在GMSMapDelegate中,这些是与拖动相关的方法。
- (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker;
- (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker;
- (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker;
但是你需要设置标记可拖动。默认情况下,标记不可拖动。
marker.draggable=YES;
在开始拖动之前,您必须按住标记。
答案 1 :(得分:0)
我还已经在Google地图中实现了可拖动标记的功能。
现在,根据您在上面有问题的2点,在longpress和release上使用标记进行地图的上下移动,这是google maps库的内置功能。 我认为地图沿标记的上下移动是为了向用户长按o标记清楚地显示完整标记。
有时,标记图标很小,可以在长按时用手指隐藏,而看不到标记拖动并放置到另一个位置。
为避免此类问题,谷歌地图添加了此功能。