HTML5之地理位置
2016-07-11 11:41
211 查看
直接上代码吧:
<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.onload=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对象
var 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>
<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.onload=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对象
var 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>
相关文章推荐
- 利用html5、websocket和opencv实现人脸检测
- DIV + CSS3 和 html5 + CSS3的区别
- HTML5和CSS3新特性一览
- 学习html5的video标签
- HTML5语义化标签
- HTML5的新特性
- HTML5中新增的元素
- HTML5简介
- 什么是html5
- HTML5与HTML4的区别
- HTML5基础学习笔记(四)
- HTML5中常用meta解析
- HTML5+CSS3项目总结
- html5学习
- html5建站实战一:特效实例
- Native与H5交互的那些事
- 吃惊!强大的HTML5居然能使表单验证变得如此如此简单!!!
- 浅谈HTML5中的Canvas基本绘图API简易封装和使用(一)
- html5 语义化标签
- 十大H5页面制作工具最新排行榜:对H5的支持、付费情况