1 html页面
<!DOCTYPE html>
<html>
<head>
<title>location.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=GBK">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<p id="demo">点击这个按钮,获得您的坐标:</p>
<button onclick="getLocation()">试一下</button><br>
<button onclick="getLocationWithError()">试一下(含错误判断)</button><br>
<button onclick="getLocationOnMap()">在地图上展现当前位置</button><br>
<button onclick="getLocationOnMapCanMove()">在地图上展现当前位置(可以拖拽,放大缩小)</button><br>
<button onclick="getLocationOnMapCanRun()">在地图上展现当前位置(支持目标移动,如汽车移动)</button><br>
<div id="mapholder"></div>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="js/location.js"></script>
</body>
</html>
2 js文件
var locationX;// 经度
var locationY;// 纬度
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
// x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var x = document.getElementById("demo");
var xxx =
"Latitude: " + position.coords.latitude + "<br />Longitude: "
+ position.coords.longitude;
x.innerHTML = xxx;
// 如下方法取不到全局变量
// locationX = position.coords.longitude;
// locationY = position.coords.latitude;
// alert(locationY);
}
// ==含错误判断===
function getLocationWithError() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
// x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showError(error) {
var x = document.getElementById("demo");
switch (error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "用户没允许使用本地位置"
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "无法获取当前位置"
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
//=======把经纬度放在地图上显示(展现在页面上),=======
function getLocationOnMap(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPositionInMap, showError);
}
}
function showPositionInMap(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;
var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML="<img src='"+img_url+"' />";
}
//=======当前位置,在google地图显示,并能拖拽,放大缩小==========
function getLocationOnMapCanMove(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPositionCanMove, showError);
}
}
function showPositionCanMove(position)
{
lat=position.coords.latitude;
lon=position.coords.longitude;
latlon=new google.maps.LatLng(lat, lon)
mapholder=document.getElementById('mapholder')
mapholder.style.height='250px';
mapholder.style.width='500px';
var myOptions={
center:latlon,zoom:14,
mapTypeId:google.maps.MapTypeId.ROADMAP,
mapTypeControl:false,
navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}
};
var map=new google.maps.Map(document.getElementById("mapholder"),myOptions);
var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"});
}
//=========在地图上展现当前位置(支持目标移动,如汽车移动)=====
function getLocationOnMapCanRun(){
if (navigator.geolocation) {
navigator.geolocation.watchPosition(showPositionCanMove, showError);
//停止监视的话,用clearWatch
}
}