码迷,mamicode.com
首页 > Windows程序 > 详细

基于HTML5的Geolocation获取地理位置,配合Google Map API反向地址解析(获取用户真实地址)

时间:2017-09-05 16:49:39      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:map   break   pix   部分   git   info   google   orm   element   

基于HTML5的Geolocation获取地理位置,配合Google Map API反向地址解析(获取用户真实地址)

html

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 
 4 <head>
 5   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6   <title>Geolocation获取地理位置,配合Google Map API反向地址解析,获取当前位置并显示在google地图上</title>
 7   <script async defer src="http://maps.google.cn/maps/api/js?key=AIzaSyBzE9xAESye6Kde-3hT-6B90nfwUkcS8Yw&callback=initMap">
 8   </script>
 9 </head>
10 
11 <body>
12   <div id="map" style="width: 890px; height: 640px"></div>
13 </body>
14 
15 </html>

 

 

js部分

 1   <script type="text/javascript">
 2   var geocoder;
 3   var display = "";
 4   var map;
 5 
 6   function initMap() {
 7     geocoder = new google.maps.Geocoder();
 8 
 9     if (navigator.geolocation) {
10       //获取当前地理位置
11       navigator.geolocation.getCurrentPosition(function(position) {
12           var coords = position.coords;
13           console.log(coords);
14           //指定一个google地图上的坐标点,同时指定该坐标点的横坐标和纵坐标
15           var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
16           var myOptions = {
17             zoom: 12, //设定放大倍数
18             center: latlng, //将地图中心点设定为指定的坐标点
19             mapTypeId: google.maps.MapTypeId.ROADMAP //指定地图类型 
20           };
21           //创建地图,并在页面map中显示
22           map = new google.maps.Map(document.getElementById("map"), myOptions);
23           var marker = new google.maps.Marker({
24             position: latlng, //将前面设定的坐标标注出来
25             map: map //将该标注设置在刚才创建的map中
26           });
27           //地址名字解析
28           geocoder.geocode({
29             ‘location‘: latlng //纬度/经度坐标
30             // ‘address‘: ‘南京‘  string  或者填需要解析的地名.
31           }, function(results, status) {
32             if (status == google.maps.GeocoderStatus.OK) {
33               console.log("获取到的经纬度:"); //address_components: Array(6), formatted_address: "中国江苏省南京市", 
34               console.log(results[0])
35               display = "地址: " + results[0].formatted_address; //格式化后的最佳匹配地址(地名可小到街道)
36 
37               console.log("位置:" + display);
38               var infowindow = new google.maps.InfoWindow({
39                 content: "<span style=‘font-size:13px‘><b>经纬度: </b>" +
40                   "latlng" + latlng + "<br>" + display + "</span>",
41                 //坐标的偏移量
42                 pixelOffset: 0,
43                 position: results[0].geometry.location //GeocoderGeometry 对象
44 
45               });
46               //默认打开信息窗口,点击也弹出信息窗口
47               infowindow.open(map, marker);
48               google.maps.event.addListener(marker, ‘click‘, function() {
49                 infowindow.open(map, marker);
50               });
51             } else {
52               alert("Geocode was not successful for the following reason: " + status);
53             }
54           });
55 
56         },
57         function(error) {
58           //处理错误
59           switch (error.code) {
60             case 1:
61               alert("位置服务被拒绝。");
62               break;
63             case 2:
64               alert("暂时获取不到位置信息。");
65               break;
66             case 3:
67               alert("获取信息超时。");
68               break;
69             default:
70               alert("未知错误。");
71               break;
72           }
73         });
74     } else {
75       alert("你的浏览器不支持HTML5来获取地理位置信息。");
76     }
77   }
78   </script>

 

基于HTML5的Geolocation获取地理位置,配合Google Map API反向地址解析(获取用户真实地址)

标签:map   break   pix   部分   git   info   google   orm   element   

原文地址:http://www.cnblogs.com/majinyun0802/p/7479077.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!