我在我的应用中实现了街景,我希望在街景中看到地图标记,有可能吗?
答案 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