是否可以在Android Google Maps API v2中使用街景视图上的标记?

时间:2014-09-16 22:40:06

标签: android maps google-maps-api-2 google-street-view

我在我的应用中实现了街景,我希望在街景中看到地图标记,有可能吗?

2 个答案:

答案 0 :(得分:3)

可能通过自定义实施向Android中的StreetView添加标记。

您应该在 StreetView 上放置一个透明的 SurfaceView

传递全景。 setOnStreetViewPanoramaCameraChangeListener (..)和 全景。 setOnStreetViewPanoramaCameraChangeListener (..)到您的表面视图以更新相机位置位置

然后从相机位置计算距离到标记,并从您到标记计算方位角

最后计算这些值到屏幕的投影 - 从表面视图获取视图高度,视图宽度等,并绘制您的标记位图到表面视图的画布即可。

将这些位图保存到HashMap,以避免多次加载相同的位图。这将使您的绘制线程运行得更快。 稍后您可能希望从在线资源中加载标记的图标。

仍然会有一些延迟,标记会稍微颤抖,因此可以平滑它们的位置。

不要忘记将标记屏幕投影左上方右下方放置在HashMap中以实现点击标记。

然后,您需要将它们标记为可点击

在SurfaceView中覆盖 onTouchEvent (..)。

在某些字段中保存最新动作事件的位置,然后返回 false ,将触摸事件传递给基础StreetView。

在上层实施全景。 setOnStreetViewPanoramaClickListener (..) - 将点击事件传递给SurfaceView,您将知道点击的x / y 保存字段中的位置。

循环显示标记'保存在屏幕上的位置HashMap,以了解某个标记是否真正点击,如果是 - 将该事件返回到上层的最终侦听器,你会知道点击标记时

查看视频以查看我的项目结果 - 我花了3天时间来实现此功能 [android] street view custom marker

我不能在这里提供代码示例,但可以随意提问

答案 1 :(得分:2)

现在Android Google maps API v2无法添加标记,此选项仅适用于iOS。

街景视图中的标记 https://developers.google.com/maps/documentation/ios/streetview#markers_within_street_view