成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google Map中Geocoder接口來反向地址解析

開發 開發工具
Google Map是個好東西,它提供的Geocoder接口可以對地址進行反向解析,從而得到諸如 “經緯度”,“國家”, “省”,“市”,“區”,“路” 等等的信息。

 如下圖,我輸入了“天河美好居”,就可以反向解析到我的具體位置)

下面就班門弄斧的講述一下:

1. 引入所需的JS:

  1. <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> 
  2. <script type="text/javascript" src="JS/jquery-1.7.min.js"></script> 

2. Javascript代碼:

  1. <script language="javascript" type="text/javascript"
  2.      var map, marker, 
  3.      //實例化地址解析器 
  4.      geoCoder = new google.maps.Geocoder(), 
  5.      //初始化地圖的配置 
  6.      myOptions = { 
  7.          zoom: 15, 
  8.          center: new google.maps.LatLng(113.32152399999995, 23.134685), 
  9.          mapTypeId: google.maps.MapTypeId.ROADMAP 
  10.      }; 
  11.      function GetGeoCoder() { 
  12.          var searchAddress = $("#txt_address").val(); 
  13.          geoCoder.geocode({ 
  14.              'address': searchAddress 
  15.          }, 
  16.          function(results, state) { 
  17.              if (state = google.maps.GeocoderStatus.OK) { 
  18.                  if (results[0]) { 
  19.                      var point = results[0].geometry.location; 
  20.                      if (marker) { 
  21.                          marker.setMap(null); 
  22.                      } 
  23.                      marker = new google.maps.Marker({ 
  24.                          map: map, 
  25.                          position: point 
  26.                      }); 
  27.                      var infowindow = new google.maps.InfoWindow({ 
  28.                          content: '<h3>我在這里.</h3>' + results[0].formatted_address 
  29.                      }); 
  30.                      google.maps.event.addListener(marker, 'click'
  31.                      function() { 
  32.                          infowindow.open(map, marker); 
  33.                      }); 
  34.                      map.setCenter(point); 
  35.   
  36.                  } 
  37.              } 
  38.          }) 
  39.      } 
  40.      //利用html5的geolocation來獲取當前位置 
  41.      function GetGeoLocation() { 
  42.          if (navigator.geolocation) { 
  43.              navigator.geolocation.getCurrentPosition(function(position) { 
  44.                  var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
  45.                  console.log(position); 
  46.                  geoCoder.geocode({ 
  47.                      'latLng': pos 
  48.                  }, 
  49.                  function(results, state) { 
  50.                      if (state = google.maps.GeocoderStatus.OK) { 
  51.                          if (results[0]) { 
  52.                              var point = results[0].geometry.location; 
  53.                              var myDirection = results[0].formatted_address; 
  54.                              if (marker) { 
  55.                                  marker.setMap(null); 
  56.                              } 
  57.                              marker = new google.maps.Marker({ 
  58.                                  map: map, 
  59.                                  position: point 
  60.                              }); 
  61.                              var infowindow = new google.maps.InfoWindow({ 
  62.                                  content: '<h3>我在這里</h3>' + myDirection 
  63.                              }); 
  64.                              google.maps.event.addListener(marker, 'click'
  65.                              function() { 
  66.                                  infowindow.open(map, marker); 
  67.                              }); 
  68.                              map.setCenter(point); 
  69.                              $("#txt_address").val(myDirection.split(' ')[0]); 
  70.   
  71.                          } 
  72.                      } 
  73.                  }) 
  74.              }, 
  75.              function() { 
  76.                  handleNoGeolocation(true); 
  77.              }, 
  78.              { 
  79.                  'enableHighAccuracy'true
  80.                  'timeout': 10000, 
  81.                  'maximumAge': 0 
  82.              }); 
  83.          } else { 
  84.              // 瀏覽器不支持Geolocation 
  85.              handleNoGeolocation(false); 
  86.          } 
  87.      } 
  88.   
  89.      function handleNoGeolocation(errorFlag) { 
  90.          if (errorFlag) { 
  91.              var content = 'Error: The Geolocation service failed.'
  92.          } else { 
  93.              var content = 'Error: Your browser doesn\'t support geolocation.'
  94.          } 
  95.   
  96.          var options = { 
  97.              map: map, 
  98.              position: new google.maps.LatLng(113.32152399999995, 23.134685), 
  99.              content: content 
  100.          }; 
  101.   
  102.          var infowindow = new google.maps.InfoWindow(options); 
  103.          map.setCenter(options.position); 
  104.      } 
  105.      $(function() { 
  106.          map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); 
  107.          //頁面加載時,利用html5獲取當前位置 
  108.          GetGeoLocation(); 
  109.          $('#txt_address').bind('keyup'
  110.          function(event) { 
  111.              if (event.keyCode == 13) { 
  112.                  GetGeoCoder(); 
  113.              } 
  114.          }); 
  115.      }); 
  116.  </script> 

3. HTML Code:

  1. <input id="txt_address" class="input_css" type="text" value="Where Are You ?"/> 
  2. <div id="map_canvas"> 

這樣就可以對地址進行反向解析了,這里只進行簡單的講述,對于Google API更多更詳細的描述,可以到Google Javascript API V3的官方文檔去了解。反向地址解析是很有用的,例如,公司數據庫中有上百萬的企業數據,地址不夠完善,這時我們就可以利用它來幫助我們完善這些數據了。當然,Google Map嚴格限制了查詢的次數,多次查詢會有LIMIT_QUERY的異常,這時我們就得使用一些手段來反限制,例如,在隨機的時間間隔后查詢等等,這里不詳述。對于企業應用,還是付費使用,這樣更穩定。

原文鏈接:http://www.cnblogs.com/three-zone/archive/2012/08/12/GeoCoder.html

【編輯推薦】

責任編輯:彭凡 來源: 博客園
相關推薦

2023-12-11 07:37:08

mongodb經緯度性能

2013-03-21 18:54:23

2012-06-05 09:54:50

Windows Pho

2011-02-22 09:40:18

HashMap

2010-06-18 15:33:19

UML接口

2012-03-31 14:42:52

Google清明

2018-08-16 08:59:54

Google 云存儲技術

2011-09-21 14:17:12

Google+

2013-12-20 10:36:56

2010-02-06 14:19:26

ibmdwGoogleMap

2016-11-14 19:45:39

JavaScript

2010-10-25 09:06:47

Google Map應用

2010-02-22 15:00:02

WCF信道工廠

2018-01-08 17:17:46

微信

2011-09-07 10:08:40

Google

2010-07-21 10:18:41

Perl map函數

2017-02-17 16:43:15

人工智能AI技術Wear 2.0

2009-07-22 14:36:50

2021-05-14 06:15:48

SpringAware接口

2011-05-20 16:33:47

委托接口
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区四区五区 | 性欧美精品一区二区三区在线播放 | 黄网站涩免费蜜桃网站 | 国产成人综合在线 | av三级 | 午夜久久久 | 亚洲国产一区二区三区在线观看 | 亚洲一区 中文字幕 | 先锋av资源网 | 亚洲精品久久久一区二区三区 | 亚洲高清视频在线观看 | 国产成人99久久亚洲综合精品 | 中国一级特黄真人毛片 | 精品国产成人 | 中文字幕一区二区三 | 中文字幕在线第一页 | 国产精品a久久久久 | 国产欧美一区二区三区久久人妖 | 精品伦精品一区二区三区视频 | 亚洲a视| 亚洲国产欧美一区 | 国产一区二区三区高清 | 亚洲精品久久久9婷婷中文字幕 | 国产福利视频 | 国产在线一区二区 | 怡红院怡春院一级毛片 | 欧美福利久久 | 亚洲协和影视 | 欧美精品在线一区二区三区 | 久久y| 久久a久久 | 久久久国产一区二区三区 | 成年人视频免费在线观看 | 亚洲免费成人av | 亚洲欧美在线观看视频 | 久久久久久综合 | 欧美一区二区在线视频 | 国产精品99精品久久免费 | 视频一区在线观看 | 久久国产精品72免费观看 | 日韩成年人视频在线 |