云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 移动位置服务在旅游业中的应用 - 图文

移动位置服务在旅游业中的应用 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 11:12:49

//定义位置监听器

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 mapOverlays = bmapsView.getOverlays(); mapOverlays.add(overlay);

此项服务实现的本质在于添加图层,首先创建自定义的Overlay继承ItemizedOverlay,接着分别创建图标和文本标记,然后将多个OverlayItem标记项添加到图层中,最后往地图上添加自定义的ItemizedOverlay,这样,图标和文本信息就可以呈现在指定的位置了。

24

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

//定义位置监听器 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 = inpu

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com