为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
baiduPanorama 插件封装了百度全景 SDK ,为移动平台提供的一套全景图服务接口,面向广大开发者提供全景图的检索、显示和交互功能,从而更加清晰方便地展示目标位置的周边环境。百度全景 SDK 提供的所有服务是免费的,接口无次数限制。您需申请密钥(key)后,才可使用百度全景SDK。任何非营利性产品请直接使用,商业目的产品使用前请参考使用须知。 在您使用百度全景 SDK 之前,请先阅读百度地图API使用条款。
注意:
1. 使用此插件之前必须先配置 config 文件
2. 不能同时添加的插件bMap, bmLocation, baiduNavigation
注意:本插件 iOS 平台上最低适配系统版本为 iOS 9.0
针对 iOS 平台配置方法:
<feature name="baiduPanorama">
<param name="ios_api_key" value="百度ak"" />
</feature>
针对 android 平台配置方法:
<meta-data
name="com.baidu.lbsapi.API_KEY"
value="百度ak" />
打开全景
open({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w: 80, //(可选项)数字类型;插件的宽度;若传'auto',页面从x位置开始自动充满所属的 Window 或 Frame 的宽度;默认:'auto'(Android平台下h要大于等于w,否则预览会拉伸)
h: 50 //(可选项)数字类型;插件的高度;若传'auto',页面从y位置开始自动充满所属的 Window 或 Frame 的高度;默认:'auto'(Android平台下h要大于等于w,否则预览会拉伸)
}
fixedOn:
fixed:
ret:
{
status: true //布尔类型;是否打开全景成功
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.open({
rect: {
x: 0,
y: 0,
w: api.frameWidth,
h: api.frameHeight
},
fixedOn: api.frameName,
fixed: false
}, function(ret){
if( ret ){
alert( JSON.stringify( ret ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置全景图经纬度坐标,根据经纬度坐标展示附近的全景图
setPosition({params})
lon:
lat:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPosition({
lon: 116.384767,
lat: 39.989539
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置全景图Id,根据全景图Id展示附近的全景图
setPID({params})
pid:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPID({
pid: '0900220000141205144547300IN'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置墨卡托坐标,根据地理坐标展示附近的全景图,本接口在 iOS 平台无效
setMercator({params})
x:
y:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setMercator({
x: 12971348,
y: 4826239
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置地图POI Id,根据地图POI Id展示附近的全景图
setPOIID({params})
uid:
panoType:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPOIID({
uid: '7aea43b75f0ee3e17c29bd71',
panoType: 'STREET'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置全景图的俯仰角
setPanoramaPitch({params})
pitch:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPanoramaPitch({
pitch: 60
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置全景图的偏航角
setPanoramaHeading({params})
heading:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPanoramaHeading({
heading: 60
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置全景图的缩放级别
setPanoramaLevel({params})
level:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPanoramaLevel({
level: 2
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置是否显示邻接街景箭头(有邻接全景的时候)
setShowTopoLink({params})
enable:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setShowTopoLink({
enable: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置全景图片的显示级别
setPanoramaImageLevel({params})
level:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setPanoramaImageLevel({
level: 'middle'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置箭头的纹理
setArrowTextureByBitmap({params})
path:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setArrowTextureByBitmap({
path: 'widget://res/arrow.png'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取当前全景图的俯仰角
getPanoramaPitch(callback(ret, err))
ret:
{
pitch: 60, //数字型;取值范围:室外景[-15, 90], 室内景[-25, 90]
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.getPanoramaPitch(function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取当前全景图的偏航角
getPanoramaHeading(callback(ret, err))
ret:
{
heading: 60, //数字型;取值范围:[0, 360]
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.getPanoramaHeading(function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取当前全景图获取缩放级别
getPanoramaLevel(callback(ret, err))
ret:
{
level: 3, //数字型;取值范围:[1, 5]
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.getPanoramaLevel(function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加图片标注
addImgMarker({params}, callback(ret))
id:
lon:
lat:
img:
height:
size:
{
width: 153, //(可选项)数字类型;标注的宽;默认:153
height: 69 //(可选项)数字类型;标注的高;默认:69
}
ret:
{
id: '10', //字符串类型;标注 ID
eventType: 'click' //字符串类型;交互事件类型
//取值范围:
//click(用户点击标注事件)
//add(用户添加标注事件)
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.addImgMarker({
id: '10',
lon: 116.297,
lat: 40.109,
icon: 'widget://res/marker.png',
height: 20.3
}, function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加文字标注
addTextMarker({params}, callback(ret, err))
id:
lon:
lat:
text:
height:
fontColor:
bgColor:
fontSize:
padding:
{
left: 10, //(可选项)数字类型;左边距;默认:10
top: 10, //(可选项)数字类型;上边距;默认:10
right: 10', //(可选项)数字类型;右边距;默认:10
bottom: 10 //(可选项)数字类型;下边距;默认:10
}
ret:
{
id: '10', //数字类型;标注ID
eventType: 'click', //字符串类型;交互事件类型
//取值范围:
//click(用户点击标注事件)
//add(用户添加标注事件)
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.addTextMarker({
id:'11',
lon: 116.297,
lat: 40.109,
text: 'hello',
height: 20.3,
fontColor: '#0f0',
fontSize: 12,
bgColor: '#00F',
padding:{
left:10,
top:10,
right:10,
bottom:10
}
}, function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除指定 id 的标注
removeMarkers({params})
ids:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.removeMarkers({
ids: ['1','2','3']
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置内景相册控件是否显示,本接口仅对内景有效,应在调用开启内景接口(setPID、setPOIID等)前调用本接口
setIndoorAlbumVisiblity({params})
visibility:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.setIndoorAlbumVisiblity({
visibility: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
利用内景 ID 获取室内全景描述信息,其中包含室内相册相关信息
getPanoramaByIIdWithJson({params}, callback(ret, err))
iid:
ret:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.getPanoramaByIIdWithJson({
iid:'978602fdf6c5856bddee8b62'
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
利用全景 ID 获取服务推荐的描述信息
getPanoramaRecommendInfo({params}, callback(ret, err))
pid:
ret:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.getPanoramaRecommendInfo({
pid:'0900220000141205144547300IN'
}, function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
利用百度地图uid获取POI信息
getPoiInfoByUidWithJson({params}, callback(ret, err))
uid:
ret:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.getPoiInfoByUidWithJson({
uid:'bff8fa7deabc06b9c9213da4'
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据百度地图POIID(uid)判断是否有外景信息,iOS 上从 getPoiInfoByUidWithJson 接口获取该信息
hasStreetPanoByUid({params}, callback(ret, err))
uid:
ret:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.hasStreetPanoByUid(({
uid:'bff8fa7deabc06b9c9213da4'
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据百度地图POIID(uid)判断是否有内景信息,iOS 上从 getPoiInfoByUidWithJson 接口获取该信息
hasInnerPanoByUid(callback(ret, err))
uid:
ret:
{
status: true, //布尔类型;
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.hasInnerPanoByUid(({
uid:'bff8fa7deabc06b9c9213da4'
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据百度经纬度坐标判断是否有外景信息
hasStreetPanoByLatLon(callback(ret, err))
lon:
lat:
ret:
{
status: true, //布尔类型;
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.hasStreetPanoByLatLon({
lon: 116.384767,
lat: 39.989539
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据墨卡托坐标判断是否有外景信息
hasStreetPanoByMercator(callback(ret, err))
x:
y:
ret:
{
status: true, //布尔类型;
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.hasStreetPanoByMercator({
x: 12971348,
y: 4826239
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
全景图开始加载的监听
loadPanoramBeginListener({params}, callback(ret))
enable:
ret:
{
status: //布尔类型;全景图开始加载事件监听成功
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.loadPanoramBeginListener({
enable : false
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
全景图描述信息加载完成的监听,iOS 平台不支持本接口
descriptionLoadEndListener({params}, callback(ret))
enable:
ret:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.descriptionLoadEndListener({
enable : false
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
全景操作的回调监听(旋转、点击等),iOS 平台不支持本接口
messageListener({params}, callback(ret))
enable:
ret:
{
status: true, //布尔类型;
msgName: //字符串类型;消息名称
msgType: //字符串类型;消息类型
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.messageListener({
enable : false
},function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
全景图加载完成的监听
loadPanoramaEndListener({params}, callback(ret))
enable:
ret:
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.loadPanoramaEndListener({
enable : false
}, function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本
全景加载异常的监听
loadPanoramaErrorListener({params}, callback(ret))
enable:
ret:
{
status: //布尔类型;
}
var baiduPanorama = api.require('baiduPanorama');
baiduPanorama.loadPanoramaErrorListener({
enable : false
}, function(ret) {
alert(JSON.stringify(ret));
});
iOS系统,Android系统
可提供的1.0.0及更高版本