为满足开发者的实际业务需求,SDK 支持在全景图内绘制自定义标注,并支持为标注响应点击事件。目前支持图片和文本两种覆盖物。
2.0.0 版本支持设置覆盖物高度,可通过 setPitchHeight(float height) 设置覆盖物与地面的距离(单位:m)。
百度 Android 全景 SDK 的接口和功能目前支持 BD09 坐标。因此,开发者在使用全景 SDK 的接口和功能时,需要将 WGS84 坐标或 GCJ02 坐标转换为 BD09 坐标。
相应的接口和转换方法请参考坐标转换,请勿使用非官方的转换方法。
第一步:构造图片覆盖物(ImageMarker)。首先确定覆盖物的位置信息,开发者可以通过百度坐标拾取系统(https://api.map.baidu.com/lbsapi/getpoint/)获取坐标,在当前场景点的任意方向拾取即可。
例如在天安门东北方向显示一个ImageMarker,首先拾取该方向的坐标。

将该坐标构造为 Point 并传入 ImageMarker,随后可以调整 ImageMarker 的高度,以获得最佳视角。
核心代码如下:
ImageMarker marker = new ImageMarker();marker.setMarkerPosition(new Point(116.427116, 39.929718));marker.setMarkerHeight(20.3f);marker.setMarker(getResources().getDrawable(R.drawable.icon_marka));marker.setOnTabMarkListener(new OnTabMarkListener() {@Overridepublic void onTab(int index) {Toast.makeText(PanoramaDemoActivityMain.this,"标注已被点击", Toast.LENGTH_SHORT).show();}});
第二步:将 ImageMarker 添加到全景图中并显示。核心代码及效果图如下:
mPanoview.addMarker(marker);
同时,ImageMarker支持删除,方便开发者动态管理Marker,
mPanoview.removeMarker(marker);mPanoview.removeAllMarker();

第一步:构造文字覆盖物(TextMarker)。首先确定覆盖物的位置信息,开发者可以通过百度坐标拾取系统(https://api.map.baidu.com/lbsapi/getpoint/)获取坐标,在当前场景点的任意方向拾取即可。
例如在天安门东南方向显示一个TextMarker,首先拾取该方向的坐标。

将该坐标构造为 Point 并传入 TextMarker,随后可以调整 TextMarker 的高度,以获得最佳视角。
颜色需要设置透明度,格式为 0xARGB,其中 A 表示透明度;也可以使用 Android 提供的 Color 类。
字号和 padding 的单位均为像素。
核心代码如下:
TextMarker marker = new TextMarker();marker.setMarkerPosition(new Point(116.409766, 39.911808));marker.setMarkerHeight(20.3f);marker.setFontColor(0xFFFF0000);marker.setText("你好marker");marker.setFontSize(12);marker.setBgColor(0xFFFFFFFF);marker.setPadding(10, 20, 15, 25);marker.setOnTabMarkListener(new OnTabMarkListener() {@Overridepublic void onTab(int index) {Toast.makeText(PanoramaDemoActivityMain.this,"标注已被点击", Toast.LENGTH_SHORT).show();}});
第二步:将标注添加到全景图中并显示。核心代码及效果图如下:
mPanoview.addMarker(marker);
同时,TextMarker 支持删除,方便开发者动态管理 Marker。
mPanoview.removeMarker(marker);mPanoview.removeAllMarker();

上一篇
下一篇