HTML5 地理位置参考
来源:互联网 发布:观澜网络官网 编辑:程序博客网 时间:2024/06/04 19:22
这两天在看在移动端通过浏览器获取地理位置的相关方法,顺便深入了解一下百度地图API的相关功能。
测试实例包含了以下功能:
(1)通过IP地址获取城市地址(并不完全准确,存在代理IP或IP中转时定位与实际位置不一致的情况)
(2)通过移动端浏览器及GPS定位位置坐标
(3)根据位置坐标转换百度地图坐标
(4)根据位置坐标逆推城市具体地址功能(存在一定误差)
(5)通过使用百度API展示地理位置及添加标注功能
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>地理位置测试</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
<script type="text/javascript">
var map;
var gpsPoint;
var baiduPoint;
var gpsAddress;
var baiduAddress;
function getLocation() {
//根据IP获取城市
var myCity = new BMap.LocalCity();
myCity.get(getCityByIP);
//获取GPS坐标
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showMap, handleError, { enableHighAccuracy: true, maximumAge: 1000 });
} else {
alert("您的浏览器不支持使用HTML 5来获取地理位置服务");
}
}
function showMap(value) {
var longitude = value.coords.longitude;
var latitude = value.coords.latitude;
map = new BMap.Map("map");
//alert("坐标经度为:" + latitude + ", 纬度为:" + longitude );
gpsPoint = new BMap.Point(longitude, latitude); // 创建点坐标
map.centerAndZoom(gpsPoint, 15);
//根据坐标逆解析地址
var geoc = new BMap.Geocoder();
geoc.getLocation(gpsPoint, getCityByCoordinate);
BMap.Convertor.translate(gpsPoint, 0, translateCallback);
}
translateCallback = function (point) {
baiduPoint = point;
var geoc = new BMap.Geocoder();
geoc.getLocation(baiduPoint, getCityByBaiduCoordinate);
}
function getCityByCoordinate(rs) {
gpsAddress = rs.addressComponents;
var address = "GPS标注:" + gpsAddress.province + "," + gpsAddress.city + "," + gpsAddress.district + "," + gpsAddress.street + "," + gpsAddress.streetNumber;
var marker = new BMap.Marker(gpsPoint); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
var labelgps = new BMap.Label(address, { offset: new BMap.Size(20, -10) });
marker.setLabel(labelgps); //添加GPS标注
}
function getCityByBaiduCoordinate(rs) {
baiduAddress = rs.addressComponents;
var address = "百度标注:" + baiduAddress.province + "," + baiduAddress.city + "," + baiduAddress.district + "," + baiduAddress.street + "," + baiduAddress.streetNumber;
var marker = new BMap.Marker(baiduPoint); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
var labelbaidu = new BMap.Label(address, { offset: new BMap.Size(20, -10) });
marker.setLabel(labelbaidu); //添加百度标注
}
//根据IP获取城市
function getCityByIP(rs) {
var cityName = rs.name;
alert("根据IP定位您所在的城市为:" + cityName);
}
function handleError(value) {
switch (value.code) {
case 1:
alert("位置服务被拒绝");
break;
case 2:
alert("暂时获取不到位置信息");
break;
case 3:
alert("获取信息超时");
break;
case 4:
alert("未知错误");
break;
}
}
function init() {
getLocation();
}
window.onload = init;
</script>
</head>
<body>
<div id="map" style="width:600px;height:600px;"></div>
</body>
</html>
问题 :
通过浏览器或是GPS获取 会有位置偏移,这是就需要 位置纠偏处理,校正后标记出坐标位置
参考百度API:http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5
0 0
- HTML5 地理位置参考
- HTML5 地理位置
- HTML5 地理位置
- HTML5 --地理位置
- HTML5 地理位置
- HTML5之地理位置
- HTML5开发 地理位置定位
- HTML5之地理位置
- HTML5 地理位置定位
- HTML5 Geolocation 地理位置 - 6
- html5获取地理位置
- HTML5 Geolocation获取地理位置
- html5 获取地理位置信息
- HTML5地理位置定位 lbs
- html5获取地理位置
- html5获取地理位置
- HTML5之地理位置
- HTML5-地理位置接口
- ORACLE9i_性能调优基础八(SQL tuning)
- 混进省队后的进化系统
- ORACLE——Instant Client配置SQL*LDR、EXP等命令工具
- 【钱钱贷】p2p理财莫被高收益迷了双眼
- AIR操作zip解压文件到指定目录下
- HTML5 地理位置参考
- 口袋里的两座城。
- VI/VIM General introduction
- STM32——SPI+DMA
- 大学的电子创新班之路,玩mcu,dsp,arm嵌入式
- 《Arduino入门很简单》免费申请送书啦!
- iOS xcode6.0使用7.1运行程序 iphone5上下有黑条
- ListView子控件抢占焦点的问题
- HTML5 地理位置定位(HTML5 Geolocation)原理及应用