经纬度有相差那个是正常的,用户用浏览打开时定位的IP不是用户本身电脑的IP,而是公网出口的IP.
简单的说,你用电信上网,那用IP定位到的可能是你附近的某个电信大楼。
代码网上都有,出错的话你可以比对下
!DOCTYPE HTML
html
head
meta charset=utf-8
title无标题文档/title
script type=text/javascript src=http://api.map.baidu.com/api?v=1.3/script
script type=text/javascript
function getLocation()
{
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showMap, handleError, {enableHighAccuracy:true, maximumAge:1000});
}else{
alert(您的浏览器不支持使用HTML 5来获取地理位置服务);
}
}
function showMap(value)
{
var longitude = value.coords.longitude;
var latitude = value.coords.latitude;
var map = new BMap.Map(map);
var point = new BMap.Point(longitude, latitude); // 创建点坐标
map.centerAndZoom(point, 15);
var marker = new BMap.Marker(new BMap.Point(longitude, latitude)); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
}
function handleError(value)
{
switch(value.code){
case 1:
alert(位置服务被拒绝);
break;
case 2:
alert(暂时获取不到位置信息);
break;
case 3:
alert(获取信息超时);
break;
case 4:
alert(未知错误);
break;
}
}
function init()
{
getLocation();
}
window.onload = init;
/script
/head
body
div id=map style=width:600px;height:600px;/div
/body
/html
取消
评论