==获取地理位置的方式:
1、GPS(全球定位系统)
2、手机信号(移动通信基站)
3、wiFi或蓝牙(wifi信号发射装置都有一个全球唯一的MAC地址)
4、IP地址(链接互联网时,每台设备都有一个独一无二的IP地址)
==用geolocation对象定位(针对百度地图):
var geolocation = new BMap.Geolocation( );//1、先获取geolocation 对象
geolocation.getCurrentPosition( successCallback, errorCallback);//2、对象掉定位方法,定位成功执行successCallback函数,失败执行errorCallback函数(参数可不填)
function successCallback(position){
var coords = position.coords;//coords属性返回经纬度对象
var longitude = coords.longitude;//经度
var latitude = coords.latitude;//纬度
var accuracy = coords.accuracy;//精确度
}//定位成功将要执行的函数
function errorCallback(error){
switch(error.code){
case 3:
alert("超时,请重试!");
break;
case 2:
alert("位置信息不可用!");
break;
case 1:
alert("用户拒绝了该浏览器的位置信息请求!");
break;
case 0:
alert("未知错误!");
break;
}
}//定位失败将要执行的函数
==还可添加配置对象为第三个参数
{
enableHighAcuracy : true,//指示浏览器获取高精度位置,默认为false
timeout : 5000,//指定获取位置超时时间,默认不限时,单位毫秒
maximumAge : 10000//指定多久重复获取位置
}
==getCurrentPosition方法与watchPosition方法的区别:
getCurrentPosition这个函数只会执行一次,
watchPosition这个函数只有设备的位置发生变化,才会执行成功函数。
==用JS初始化地图
var map = new BMap.Map("map");//创建地图对象,id为"map"的div,且div的宽高为100%,且div的父亲必须有宽高。
map.centerAndZoom("北京",100);//初始化地图,设置中心和缩放比例。
==Map对象的常见方法:
enableDragging() / disableDragging()===>启用/禁用地图拖拽
enableScrollWheelZoom() / disableScrollWheelZoom()===>启用/禁用滚轮缩放大小
enableKeyboard() / disableKeyboard()===>启用/禁用键盘上下键移动地图
enableDoubleClickZoom() / disableDoubleClickZoom()===>启用/禁用双击放大
getCenter===>返回当前的中心点对象
==百度地图API常用控件
NavigationControl====>平移缩放控件
ScaleControl====>比例尺控件
MapTypeControl====>地图类型控件(只有设置为城市时有用)
PanoramaControl====>全景控件(全景效果在本地打开可能没有效果,放在服务器环境即可。)
==向地图中添加控件
map.addControl(new BMap.NavigationControl());//平移缩放控件
map.addControl(new BMap.ScaleControl());//比例尺控件
map.addControl(new BMap.MapTypeControl());//地图类型控件
map.addControl(new BMap.PanoramaControl());//全景控件