<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<title>获取地理位置</title>
<style>
html,body,#allmap{
width:100%;
height:100%;
}
</style>
</head>
<body>
<div id="box"></div>
<div id="allmap"></div> <script>
var map;
//异步加载地图
function loadJScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://api.map.baidu.com/api?v=2.0&ak=j9Qhl3n6K2RbPb2EnYr5LW0mEyaacdiC&callback=init";
document.body.appendChild(script);
}
function init() {
var map1 = new BMap.Map("allmap"); // 创建Map实例
var point = new BMap.Point(110, 38); // 创建点坐标
map1.centerAndZoom(point,15);
map1.enableScrollWheelZoom(); //启用滚轮放大缩小
map=map1;
}
window.onload = loadJScript;
//异步加载地图
//获取经纬度
var x = document.querySelector("#box");
function getLocation(){
if(navigator.geolocation){
console.log("123");
navigator.geolocation.getCurrentPosition(function(position){
console.log(456);
x.innerHTML ="纬度:"+position.coords.latitude +"<br>经度:"+
position.coords.longitude;
var longitude = position.coords.longitude,latitude = position.coords.latitude;
//调用百度地图api:
theLocation(map,longitude,latitude)
},
function (error){
switch(error.code)
{
case error.PERMISSION_DENIED:
x.innerHTML="User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML="Location information is unavailable."
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;
}
},
{
// 指示浏览器获取高精度的位置,默认为false
enableHighAcuracy: true,
// 指定获取地理位置的超时时间,默认不限时,单位为毫秒
timeout: 5000,
// 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
maximumAge: 3000
}
);
}else{
x.innerHTML="该浏览器不支持获取地理位置!";
alert('123');
}
}
function theLocation(map,longitude,latitude) {
if (longitude != "" && latitude != "") {
map.clearOverlays();
var new_point = new BMap.Point(longitude, latitude);
//坐标转换
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(new_point);
convertor.translate(pointArr, 1, 5, function(data){
if(data.status === 0) {
//标注转换后的坐标
var marker = new BMap.Marker(data.points[0]);
map.addOverlay(marker);
var label = new BMap.Label("您现在的位置", {offset: new BMap.Size(20, -10)});
marker.setLabel(label); //添加百度label
map.setCenter(data.points[0]);
map.centerAndZoom(data.points[0],18);
}
})
}
}
//获取位置
getLocation();
</script> </body>
</html>

最新文章

  1. 前端之jquery
  2. Linux系统VNC配置实践总结
  3. android:layout_height、android:layout_width、android:height、android:width的关系与区别
  4. js 实现进度条功能。
  5. Android 第一个程序 及 环境搭配
  6. DB2支持的三种表空间SMS、DMS、DMS的自动存储
  7. [转]支付宝接口程序、文档及解读(ASP.NET)
  8. bzoj 2435: [Noi2011]道路修建 树上 dp
  9. 执行gem install dryrun错误
  10. Git 提供篇
  11. Jquery获对HTML控件的控制
  12. 走入PHP-数据类型和字符串语法
  13. ASP.NET Core 2.0 : 四. _Layout与_ViewStart
  14. haproxy配置文件详解和ACL功能
  15. IE常见的兼容处理
  16. java多线程的(一)-之java线程的使用
  17. Linux直播推流
  18. redis知识汇总
  19. 20165234 《Java程序设计》第十周课下作业
  20. faiss学习

热门文章

  1. GameTOOL
  2. 深夜配置一把struts2
  3. shell查找进程并终止
  4. 在ASP.NET根据DataTable中的内容导出Excel
  5. Android中Textview显示Html,图文混排,支持图片点击放大
  6. 63. 不同路径 II leetcode JAVA
  7. php中mvc框架总结1(7)
  8. 1083 矩阵取数问题(DP)
  9. 深入了解java虚拟机(JVM) 第十二章 类加载器
  10. “全栈2019”Java多线程第十四章:线程与堆栈详解