您的位置:首页 > Web前端 > HTML5

html5中利用google map,处理当前位置相关应用

2016-07-02 14:41 393 查看
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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  html5 谷歌 地图