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

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
    } 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值