利用 Google Map API 把地址轉換成經緯度

先載入 jQuery / GoogleMap API

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

HTML 如下:

<p>輸入地址</p>
   <textarea rows="12″ cols="100″ id="source"></textarea>
<p>地址轉換經緯度結果 (格式:Latitude,Longitude)</p>
   <textarea rows="50″ cols="200″ id="target"></textarea>

JavaScript 如下:

$(function () {
   var i;
   var split, address;

   $(“#source").blur(function () {
      i = 0;
      $(“#target").val(“");
      var content = $(“#source").val();
      split = content.split(“\n");
      transLoop();
   });

   function transLoop() {
      address = split[i].split(“,");
      addressToLngLat(address[2]);
      if (++i == split.length) {
         return;
      }
      setTimeout(transLoop, 1500);
   }

   function addressToLngLat(addr) {
      var geocoder = new google.maps.Geocoder();
      geocoder.geocode({
         “address": addr
      }, function (results, status) {
         if (status == google.maps.GeocoderStatus.OK) {
            var txtJson = “{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[“;
            txtJson += results[0].geometry.location.lng() + “," + results[0].geometry.location.lat() + “]},";
            txtJson += “\"properties\":{“;
            txtJson += “\"name\":\"" + address[0] + “\",";
            txtJson += “\"tel\":\"" + address[1] + “\",";
            txtJson += “\"address\":\"" + address[2] + “\"}},";
            $(“#target").val($(“#target").val() + txtJson + “\n");
         } else {
            $(“#target").val($(“#target").val() + address[0] + “\n");
         }
      });
   }
});

輸入地址格式如下:
地址可輸入多筆,一筆一行,但建議不要太多筆( < 10 ),GoogleMap API 會擋掉。

流線傳媒股份有限公司,02-8771-5865,台北市光復南路102號14樓

產出的 JSON 字串如下:

{
“type":"Feature",
“geometry":{“type":"Point","coordinates":[121.55748960000005,25.0435228]},
“properties":{“name":"流線傳媒股份有限公司","tel":"02-8771-5865″,"address":"台北市光復南路102號14樓"}
},