Android动态绘制、可点击的地图覆盖?

Android动态绘制、可点击的地图覆盖?,android,google-maps,Android,Google Maps,我正在尝试编写一个Android应用程序,允许用户搜索一般目的地(如“加油站”),并提供多达5个附近位置供选择。屏幕结果将在中心显示用户位置,可能的目的地选项将由标记指示 诀窍是我不想从地图的起始比例重新缩放地图,因此一些可能的目的地可能在屏幕上不可见。我想动态绘制一个可点击的方向指示灯(如箭头),它从用户位置发出并指向任何屏幕外的目的地。如果屏幕外有多个目的地,我可能希望缩放箭头长度以指示相对距离。如果用户点击箭头,他们应该被“传送”到屏幕外的位置 关于如何最好地实现这一点,有什么想法吗?我在

我正在尝试编写一个Android应用程序,允许用户搜索一般目的地(如“加油站”),并提供多达5个附近位置供选择。屏幕结果将在中心显示用户位置,可能的目的地选项将由标记指示


诀窍是我不想从地图的起始比例重新缩放地图,因此一些可能的目的地可能在屏幕上不可见。我想动态绘制一个可点击的方向指示灯(如箭头),它从用户位置发出并指向任何屏幕外的目的地。如果屏幕外有多个目的地,我可能希望缩放箭头长度以指示相对距离。如果用户点击箭头,他们应该被“传送”到屏幕外的位置

关于如何最好地实现这一点,有什么想法吗?我在覆盖图上找到的唯一信息是使用静态文件(大多数覆盖图似乎只是标记的.PNG文件;一个示例中有一条从XML文件绘制的路线)。我需要根据方向计算箭头 到目的地(箭头指向的方向)以及到该位置的相对距离(箭头长度),因此,在运行时,我必须提出覆盖

我认为主要的挑战是绘制可点击的箭头,但我想到的另一个问题是,我应该使用Google Maps API进行搜索,还是这项工作更适合Google Places API

谢谢

我想我们应该暂停传送,直到一个动态绘制的、可点击的覆盖问题解决为止

动态绘制的、可单击的覆盖仅是的一个子类。您将覆盖一个或两个
draw()
方法,以使用
Canvas
2D绘图API渲染箭头。您将覆盖
onTap()
,以收到地图上点击的通知,查看他们是否点击了箭头。您可以通过
addOverlays().add()
将覆盖添加到
MapView

大多数覆盖图似乎只是标记的.PNG文件

这些通常是
ItemizedOverlay
类。实现起来要简单得多,特别是如果你是像我这样的开发人员之一,在
Canvas
方面一窍不通。但是,您很可能无法通过
项目化overlay
实现您想要的

我需要根据到目的地的方向(箭头指向的方向)和到该位置的相对距离(箭头长度)来计算箭头,所以我必须在运行时计算叠加

对。如果需要,可以使用投影来帮助在像素空间和地理空间(纬度和经度)之间进行转换


请注意,这一切都假设您正在尝试使用
MapActivity
MapView
。如果您愿意,您也可以使用
WebView
或普通浏览器打开自己的基于JavaScript的地图。

“如果用户单击箭头,他们应该被“远程传送”到屏幕外的位置。您有什么想法吗?”,实现远程传送似乎超出了我们目前的科学知识范围。也许,如果你致力于帮助提出物理学中万物的大统一理论,将量子领域与广义相对论联系起来,你可以…:-)嗯。我想我们应该暂时搁置隐形传送,直到一个动态绘制的、可点击的覆盖问题解决为止!谢谢你的指导。我将研究Canvas以及您提到的其他类和方法。我正在使用MapActivity和MapView。听起来(对我来说)这将是一个相当具有挑战性的挑战,但可能比用脚趾来做要容易得多!