腾讯Android街景SDK是腾讯为Android平台提供的一套街景服务接口,通过该接口,您可以轻松地使用腾讯提供的地图服务和数据,构建自己的街景应用程序,目前支持Android 2.1以上的版本。
街景SDK需要以下系统权限
首先将StreetViewPanoramaView添加到main_activity,代码如下:
然后,MainActivity代码如下:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
StreetViewPanoramaView mPanoramaView;
StreetViewPanorama mPanorama;
mPanoramaView = (StreetViewPanoramaView)findViewById(R.id.panorama_view);
mPanorama = mPanoramaView.getStreetViewPanorama();
mPanorama.setPosition(39.984122, 116.307894);
}
以上代码只是通过腾讯坐标获取街景,您也可以通过墨卡托坐标、街景ID来获取所需街景。您还可以设置街景的搜索半径,即在指定坐标未找到街景的时候显示指定半径距离内的街景(默认100m)。
setposition相关函数说明:
//设置需要加载的街景的经纬度(GCJ02 经纬度坐标系)
mPanorama.setPosition(double latitude, double longitude)
//设置需要加载的街景的经纬度(GCJ02 经纬度坐标系),第三个参数设置寻找街景的范围半径(m)
mPanorama.setPosition(double latitude, double longitude, int radius)
//设置需要加载的街景的经纬度(GCJ02墨卡托 坐标系)
mPanorama.setPosition(int latitude, int longitude)
//设置需要加载的街景的经纬度(GCJ02墨卡托 坐标系),第三个参数设置寻找街景的范围半径(m)
mPanorama.setPosition(int latitude, int longitude, int radius)
//设置需要加载的街景ID
mPanorama.setPosition(java.lang.String panoId)
上面的代码运行效果如下:
在SDK中提供了对街景进行操作的类StreetViewPanorama,通过这个类,您可以轻松地对街景的各个属性进行控制,并且通过丰富的回调函数实现更加精细的功能。下面仅列出部分函数,详细内容请看参考手册。
StreetViewPanorama mPanorama = mPanoramaView.getStreetViewPanorama();
回调函数:
//设置街景视角变化的监听函数
mPanorama.setOnStreetViewPanoramaCameraChangeListener(StreetViewPanorama.OnStreetViewPanoramaCameraChangeListener listener)
//设置新的街景加载的监听函数
voidmPanorama.setOnStreetViewPanoramaChangeListener(StreetViewPanorama.OnStreetViewPanoramaChangeListener listener)
//设置街景加载完成的监听函数
voidmPanorama.setOnStreetViewPanoramaFinishListener(StreetViewPanorama.OnStreetViewPanoramaFinishListner listener)
街景控制:
//获取当前街景的街景信息
mPanorama.getCurrentStreetViewInfo()
//获取街景视角的水平偏转角(正北为0度)
mPanorama.getPanoramaBearing()
//获取街景的俯仰角,仰视为90度
mPanorama.getPanoramaTilt()
//获取是否显示控制街景切换室内图的路标
mPanorama.isIndoorGuidanceEnabled()
//获取是否允许手势拖动街景
mPanorama.isPanningGesturesEnabled()
//获取是否显示街道名字
mPanorama.isStreetNamesEnabled()
//获取是否显示控制街景切换的路标
mPanorama.isUserNavigationEnabled()
//获取是否允许手势放缩街景
mPanorama.isZoomGesturesEnabled()
//设置是否显示控制街景切换室内图的路标
mPanorama.setIndoorGuidanceEnabled(boolean enableUserNavigation)
//设置是否允许手势拖动街景
mPanorama.setPanningGesturesEnabled(boolean enablePanning)
//设置街景视角的水平偏转角(正北为0度)
mPanorama.setPanoramaBearing(float yawAngle)
//设置街景的俯仰角,仰视为90度
mPanorama.setPanoramaTilt(float pitchAngle)
//设置是否显示街道名字
mPanorama.setStreetNamesEnabled(boolean enableStreetNames)
//设置是否显示控制街景切换的路标
mPanorama.setUserNavigationEnabled(boolean enableUserNavigation)
//设置是否允许手势放缩街景
mPanorama.setZoomGesturesEnabled(boolean enableZoom)
以下为部分属性设置对比图:
室内图打开
室内图关闭
显示街道
不显示街道
显示导航路标
关闭导航路标