1.HTML5获取当前地理位置
HTML5 Geolocation API(地理位置应用程序接口)可以获取当前地理位置,手机端使用GPS,电脑则根据网络定位
检查浏览器是否支持HTML5 Geolocation API
<script type="text/javascript">
if(navigator.geolocation){
alert('浏览器支持GeoLocation!');
}else{
alert('浏览器不支持GeoLocation!');
}
</script>
提供了3个调用方法
void getCurrentPosition(onSuccess, onError, options);
int watchPosition(showLocation, onError, options);
void clearWatch(watchId);
onSuccess 成功后回调方法(必选)
onError 失败回调方法(可选)
options 其他参数(可选)
options = {
enableHighAccuracy,
timeout,
maximumAge
}
2.调用百度地图展示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>基于HTML5查找地理位置并调用百度API展示</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
<script type="text/javascript">
function getLocation(){
document.getElementById('container').innerHTML = '正在搜寻中,请稍候。。。';
var options = {
enableHighAccuracy:true,
maximumAge:1000
}
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
}else{
alert('浏览器不支持GeoLocation!');
}
}
function onSuccess(position){
var longitude =position.coords.longitude;
var latitude = position.coords.latitude;
var map =new BMap.Map("container");
var point =new BMap.Point(longitude,latitude);
map.centerAndZoom(point, 16);
var icon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {
offset: new BMap.Size(10, 25),
imageOffset: new BMap.Size(0, 0 - 11 * 25)
});
var marker = new BMap.Marker(new BMap.Point(longitude,latitude),{icon:icon});
map.addOverlay(marker);
marker.addEventListener("click", function(){
alert("经度:" + longitude + ", 纬度:" + latitude);
});
}
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>
<div id="container" style="width:640px;height:640px"></div>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)