当前位置:首页 > 移动位置服务在旅游业中的应用 - 图文
//定义位置监听器
mMKSearch = new MKSearch();
mMKSearch.init(mBMapMan, new MKSearchListener(){
public void onGetAddrResult(MKAddrInfo res, int error) {
if(res == null){ }
return;
//获取位置经纬度
inputGeoPoint = new GeoPoint((int)(latitude * 1000000),
(int)(longitude * 1000000));
endGeoPoint = inputGeoPoint; // 添加到overlay当中
overlays.add(new PointOverlay(inputGeoPoint)); controller.animateTo(inputGeoPoint);
实现移动定位首先需定义位置监听器,代码为mMKSearch.init(mBMapMan, new MKSearchListener(),然后获取位置的经纬度,代码为inputGeoPoint = new GeoPoint((int)(latitude * 1000000), (int)(longitude * 1000000)),最后移动到新的位置点,代码为controller.animateTo(inputGeoPoint)。
4. 4 查询服务实现
地图的查询服务是在地图众多功能中是最为重要的服务,它使得用户能够轻松快捷地筛选出有用的旅游信息,本课题研究实现的查询服务具体实现内容的是输入任意半径,可查询出事先设定的三个地点是否在半径范围内,若在,即定位并显示在地图中,如不在,则地图定位不变,文字不显示。实现界面如下图所示:
21
该项目实现过程的关键在于条件设计,具体实现代码如下: mMKSearch = new MKSearch();
mMKSearch.init(mBMapMan, new MKSearchListener(){
publicvoid onGetAddrResult(MKAddrInfo res, int
error) {
if(res == null){ }
address = new StringBuffer(); // 经纬度所对应的位置 address.append(res.strAddr); float set_distance =
return;
Float.valueOf(edittext3.getText().toString());
textview.setText(address + \
公里范围内有:\
22
System.out.println(address);
distance1 = GetDistance(20.065926, 110.347552, latitude, longitude); distance2 = GetDistance(20.035811, 110.349053, latitude, longitude); distance3 = GetDistance(19.947618, 110.466188, latitude, longitude); if(distance1 <= set_distance){ ???
controller.animateTo(setGeoPoint1); }
if(distance2 <= set_distance){ ???
controller.animateTo(setGeoPoint2);
}
if(distance3 <= set_distance){
???
controller.animateTo(setGeoPoint3);
}
在之前的定位服务中,定义了位置监听器,在此前提之下,执行IF条件判断语句,在地图上定位并显示符合条件的地点信息,在操作界面下方输出相应的文本信息:某公里范围内有?? 4. 5 移动提醒服务实现
23
移动提醒服务指定位于某地点旁的图标、文字信息显示,通过给地图添加一个图层(ItemizedOverlay),该图层上有三个标记项(OverlayItem),每个标记项上都标注有相应的图标、文本信息,来实现此项提醒服务的。核心代码如下: //创建自定义的ItemizedOverlay
CustomItemizedOverlay overlay = new CustomItemizedOverlay(marker, this);
//创建图标资源
Drawable marker =
this.getResources().getDrawable(R.drawable.iconmarka); // 创建标记
OverlayItem overlayItem = new OverlayItem( setGeoPoint1, \海口市人民医院\
// 将标记添加到图层中
overlay.addOverlay(overlayItem); //往地图上添加自定义的ItemizedOverlay
List
此项服务实现的本质在于添加图层,首先创建自定义的Overlay继承ItemizedOverlay,接着分别创建图标和文本标记,然后将多个OverlayItem标记项添加到图层中,最后往地图上添加自定义的ItemizedOverlay,这样,图标和文本信息就可以呈现在指定的位置了。
24
共分享92篇相关文档