方法/步骤
通过浏览器打开这个连接:http://api.map.baidu.com/lbsapi/creatmap/,你会看到如下图:
选择当前城市,然后输入具体地址,搜索。
添加标注,展开后有三种形式,如图
默认选择第一种形式,把鼠标放入右边的地图,点击,然后会出现如下图,填写左边的选项,保存。
html5地理定位原理:使用IP地址;基于Web的数据库;无线网络连接定位;三角测量;GPS技术;
来测量经度和纬度。(综合了所有技术)
地理定位的精确度,
有很多方法可以定位用户的地理位置,并且每种方法都有不同的精度。
桌面浏览器一般会使用WiFi(精确到20m)或者IP定位(只能精确到城市级别,并且有可能是假地址)。
移动装置一般会使用GPS(精确到10m并且只能在外部使用),
WiFi或GSM/CDMA网络信号定位(精确到1000m)。
网页获取用户位置信息的办法
1 调用百度地图的地图标注功能,通过百度地图API获取对应的经度和纬度进而获取地区信息
优点是比较准确,缺点是需要用户自己选择位置
2 通过H5 geolocation属性获取经度和纬度,优点是用户只需要点击允许获取即可,缺点是浏览器获取的经度相对不是很准确而且仍旧需要用户确认。
3 通过用户IP来分析用户位置
<!DOCTYPE html><html>
<head>
<meta charset="utf-8"/>
<title>基于浏览器的HTML5查找地理位置</title>
<!-- 百度API -->
<script src="http://api.map.baidu.com/api?v=1.2" type="text/javascript"></script>
<script> function getLocation(){ var options={
enableHighAccuracy:true,
maximumAge:1000
} if(navigator.geolocation){ //浏览器支持geolocation navigator.geolocation.getCurrentPosition(onSuccess,onError,options)
}else{ //浏览器不支持geolocation
alert('您的浏览器不支持地理位置定位')
}
} //成功时
function onSuccess(position){ //返回用户位置
//经度
var longitude =position.coords.longitude //纬度
var latitude = position.coords.latitude
alert('经度'+longitude+',纬度'+latitude) //根据经纬度获取地理位置,不太准确,获取城市区域还是可以的
var map = new BMap.Map("allmap") var point = new BMap.Point(longitude,latitude) var gc = new BMap.Geocoder()
gc.getLocation(point, function(rs){ var addComp = rs.addressComponents
alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber)
})
} //失败时
function onError(error){ switch(error.code){ case 1:
alert("位置服务被拒绝") break case 2:
alert("暂时获取不到位置信息") break case 3:
alert("获取信息超时") break case 4:
alert("未知错误") break
}
}
window.onload=getLocation </script>
</head>
<body>
</body>
</html>