HTML5之地理位置

直接上代码吧:

<html>

<head>
<script src="http://maps.google.com/maps/api/js?sensor=true"></script>
</head>
<body>
<div id="loaction">your loaction</div>
<div id="map">map</div>
</body>
<script>
        window.οnlοad=getMyLocation;
var map;//全局变量map对象
function getMyLocation(){
  if(navigator.geolocation){//如果浏览器支持位置定位的话
         navigator.geolocaton.getCurrentPostion(displayLocation);
}else{
alert("no geolocation suppert!")

}
//显示位置
function displayLocation(position){
var latitude=position.coords.latitude;//纬度
  var longitude=position.coords.longitude;//经度
var location=document.getElementById("location");
location.innerHTML="your postion is "+"latitude:"+latitude+" longitude:"+longitude;

        showMap(position.coords);//调用showMap显示地图
}
}
//显示地图
function showMap(coords){
var googleLatAndLong=new google.maps.LatLng(coords.latitude,coords.longitude);//通过coords的经度和纬度构造出一个google.maps.LatLng对象
v ar mapOptions={ 
                        zoom:10,//地图放大程度
center:googleLatAndLong,//地图在这个位置居中
mapTypeId:google.maps.MapTypeId.ROADMAP
                         };

var mapDiv=document.getElementById("map");
map=new google.maps.map(mapDiv,mapOptions);//google.maps.map是google API提供的构造函数,其创建返回一个地图对象,地图会在id为map的Div处显示


}
//计算两地之间的距离
function computeDistance(startCoords,destCoords){//给一个起始位置和目标位置
var startLatRads=degreesToRadians(startCoords.latitude);//对起始位置的纬度进行换算
var startLongRads=degreesToRadians(startCoords.longitude);//对起始位置的经度进行换算


var destLatRads=degreesToRadians(destCoords.latitude);//对目标位置的纬度进行换算
var destLongRads=degreesToRadians(destCoords.longitude);//对目标位置的经度进行换算


var Radius=6371;//地球半径
var distance=Math.acos(Math.sin(startLatRads)*Math.sin(destLatRads)+Math.cos(startLatRads)*Math.cos(DestLatRads)*Math.cos(startLongRads-destLongRads))*Radius;
return distance;
}
//计算弧度
function degreeToRadians(degrees){
var radians=(degrees*Math.PI)/180;//弧度
return radians;

}

//熟悉地图的我们都知道,地图上都有一个类似大头针的来标记位置,下面我们来加一个大头针的实现

function addMarker(map,latlong,title,content){参数分别是:map对象,经纬度,标题,信息窗口的内容(点大头针看到的信息)

var  markerOption={

position:latlong;//位置信息

map:map;//map对象

title:title;

clickable:true;//设置为true时点击大头针显示信息窗口

};

 var marker=new google.maps.Marker(makerOption);

}

//跟踪位置

 var watchId=null;

function watchLocation{

watchId=navigator.geloacation.watchPosition(displayLocation,displayError);//参数分别是显示位置,和错误处理的函数

}

//如果要清除跟踪

function clearWatch(){

if(witchId){

navigator.geolocation.clearWatch(watchId);

}

}

//记录我们的移动轨迹?

function scrollMapToPosition(coords){

var latitude = coords.latitude;

var longitude =coords.longitude;

var latlong=new google.maps.latLng(latitude,longitude);

map.panTo(latlong);//地图的panTo方法取得latlong对象并滚动地图,使新位置位于地图中心

addMarker(map,latlong ,title,content);

}

</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值