|
本帖最后由 nfer 于 2015-7-23 09:18 编辑
1. 声明一个全局变量bMap;
此处使用全局变量的原因是不需要在函数间再进行传值。
2. 在apiready时做一下初始化操作(可以封装到init函数中)
2.1 实例化bMap,
- bMap = api.require('baiduMap');
复制代码 2.2 打开地图
- bMap.open({params},callback(ret, err));
复制代码 2.3 params部分
x,y,w,h lon(经度),lat(纬度),fixedOn(把百度地图添加到指定窗口的名字,默认值:当前主窗口的名字),fixed(是否将模块视图固定到窗口上,不跟随窗口上下滚动)
上面的所有参数都是可选参数
2.4 callback部分
ret成功消息,err失败消息,类型是JSON
3. 打开地图成功之后的处理(即bMap.open({params},callback(ret, err))的callback部分)
3.1 设置是否要在地图上显示当前位置
- bMap.showUserLocation({...});
复制代码 参数是:isShow,trackingMode。
3.2 trackingMode有三种模式:
none //标准模式
follow //跟踪模式
compass //罗盘模式
注:Android系统如果为follow和compass模式,此时往地图中添加图层(大头针,布告牌等…)地图会自动移到定位信息那里。模式为none没有这种情况。因此建议使用none模式
3.3 开始定位
- bMap.startLocation({params}, callback(ret, err))
复制代码 3.4 params部分
accuracy,精度(取值范围:10m,100m,1km,3km);filter,位置更新所需最小距离(单位米);autoStop,获取到位置信息后是否自动停止定位
3.5 callback部分
ret成功消息,err失败消息,类型是JSON
4. 定位成功之后的处理(bMap.startLocation({params}, callback(ret, err))的callback部分)
4.1 成功返回的信息
longitude:116.213 //经度 deprecated
latitude:39.213 //纬度 deprecated
lon:116.213 //经度
lat:39.213 //纬度
timestamp:1396068155591 //时间戳
4.2 设置缩放等级
- bMap.setZoomLevel({level: 16});
复制代码 level:地图比例尺级别,在手机上当前可使用的级别为3-18级(数值越大越精确)
注:这里使用了js的setTimeout(code,millisec)来延时缩放
4.3 设置百度地图中心点
- setCenter({params}),其中params包括lon和lat,具体值来自于ret参数的元素
复制代码 5. 搜索周围的信息
5.1 根据单个关键字在指定圆圈区域内搜索兴趣点
- bMap.searchNearBy({params}, callback(ret, err))
复制代码 5.2 params部分
key, lon, lat, radius(指定的区域半径,单位为m)
5.3 callback部分
ret成功消息,err失败消息,类型是JSON
6. 搜索成功之后的处理
ret:
类型:JSON对象
内部字段:
{
status: //是否查找成功
totalNum: //本次搜索的总结果数
currNum: //当前页的结果数
totalPage: //本次搜索的总页数
pageIndex: //当前页的索引
resultArray: //返回搜索结果列表,是一个数组
内部字段:
[{
lon: //当前内容的经度
lat: //当前内容的纬度
name: //名称
uid: //id
addr: //地址
city: //所在城市
phone: //电话号码
postCode: //邮编
poiType: //POI类型,0:普通点 1:公交站 2:公交线路 3:地铁站 4:地铁线路
}]
}
7. 在地图上添加大头针
- bMap.addAnnotations({params},callback(ret,err){});
复制代码 7.1 params字段
annoArray:数组[{id,lon,lat,title,subTitle,img,showBubble}]
pinImg:字符串,自定义的大头针图片,若不传则显示默认红色大头针
7.2 callback部分
ret,JSON对象
经测试包括以下几项:cbBubbleID,pinId,bubbleID,bubbleId,均为pinId;eventType为pin
8. 移除指定id的大头针或布告牌
- removeAnnotations({params})
复制代码 注意,addAnnotations的时候使用的是大头针具体信息的数组,而删除大头针时只需要id数组即可。
注:该笔记是从开源项目https://github.com/jinlong/didiShit学习,请自行前往围观学习。
贴一个我改过后的源码。
|
本帖子中包含更多资源 您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
1
查看全部评分
-
|