Android:点击地图上的某个位置时移动谷歌地图上的点
我想给我的用户选择目的地的机会。从一开始,它就已经在地图上有一个点,之后他们可以根据需要选择/更改到另一个位置。
如何通过单击地图上的其他位置来更改地图上的点?
I want to give my users oppertinty to choose destination. from the beginning it will already have a point on the map, and after that they can choose/change to another location if they want..
how is it possible to change the point on the map, by clicking somewhere else on the map?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我假设您正在谈论应用程序中的 MapView,而不是 Google 地图应用程序中的 MapView。 MapView 上有一个名为 onTouchEvent() 的方法。当用户在地图上单击(或触摸)时,将调用此回调,并且您可以从传入的 MotionEvent 对象中读取触摸的位置。从那里您可以决定要执行的操作。
另一种方法是扩展 Overlay 类,并将其添加到 MapView 的 Overlay 列表中。 Overlay 有一个名为 onTap() 的方法,它可以为您提供发生触摸的 GeoPoint。然后,您可以使用 MapController 将该点设置为动画,将地图置于该点的中心。
如果您只想横向平移地图,用户只需触摸并拖动地图即可。
为了使这些功能发挥作用,MapView 必须是可点击的(可通过 XML 或代码进行设置)。
相关参考页面在这里:
Android Maps API 的网址
I assume you're talking about a MapView within your application, and not in the Google Maps app. There's a method on a MapView called onTouchEvent(). This callback will be called when a user clicks (or touches) on the map, and you can read the location of the touch from the MotionEvent object that's passed in. From there you can decide what you want to do.
Another way is to extend the Overlay class, and add it to your MapView's Overlay list. Overlay has a method called onTap(), which gives you the GeoPoint where the touch took place. You can then animate to that spot using the MapController to center the map on that spot.
If all you want to do is pan the map sideways, a user can simply touch and drag the map.
For these things to work the MapView must be clickable (settable in XML or with code).
The relevant reference pages are here:
URL to Android Maps API
我认为这个教程是完美的。您应该仔细阅读源代码的内容。这就是你需要做的全部。
i think this tutorial is perfect one. You should read carefully content of source code. That's all what u need to do.