顯示具有 Google Maps API 標籤的文章。 顯示所有文章
顯示具有 Google Maps API 標籤的文章。 顯示所有文章

2015/08/05

使用Google Maps API 結合高雄公車即時線路資訊

上班寫範例用


<!--停車場Sample url=http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AP&CaseNo2=12&Lang=C -->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf8">
  <title>OpenData Sample 1 by C.Y. Fang </title>
  <style type="text/css">
    html { height: 100% }
    body { height: 100%; margin: 0; padding: 0 }
    #map { height: 90%; width: 100% }
    #about { height: 10%; width: 100% }
  </style>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=zh-TW"></script>
  <script type="text/javascript">
  var markerArray;
  var mapOptions = {
      zoom: 12,
      center: new google.maps.LatLng(22.631386, 120.301951),
      mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map;

  function createMarker(position, title, icon, content, map){
    var marker = new google.maps.Marker({
        position: position,
        title: title,  
        icon: icon
    });

    var infowindow = new google.maps.InfoWindow({
        content: content,
        position: position
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
    });

    google.maps.event.addListener(marker, 'mouseout', function() {
        infowindow.close();
    });

    return marker;
  }

  function startTimer () {
    setInterval(function () {
      var url = "https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20xml%20WHERE%20url%3D%22http%3A%2F%2Fxml11.kctmc.nat.gov.tw%3A8080%2Fxmldata%2FParking.xml%22&format=json&diagnostics=true";
      
      if(map === undefined)
        map = new google.maps.Map(document.getElementById("map"), mapOptions);

      if(markerArray === undefined)
        markerArray = Array();

    $.getJSON(url, function(data){
      if(data){

        var dataInfo = data.query.results.NewDataSet.Data;
        var length = dataInfo.length;

        for(var index = 0; index < length; index++){

          var update = '<p>';
          if(dataInfo[index].UPDATETIME)
            update += '最新更新時間:' + dataInfo[index].UPDATETIME + '<p>';

          var price = '';
          if(dataInfo[index].PRICE !== null)
            price = dataInfo[index].PRICE.toString();

          markerArray[index] = createMarker(
            new google.maps.LatLng(dataInfo[index].N, dataInfo[index].E),
            dataInfo[index].NAME,
            {
              url: 'https://www.iconfinder.com/icons/559874/download/png/32',
              size: new google.maps.Size(32, 32),
              origin: new google.maps.Point(0, 0),
              anchor: new google.maps.Point(0, 32)
            },
            price + update +
            '還有' + dataInfo[index].CAR_NUM + '個車位',
            map
          );

          markerArray[index].setMap(null);
          markerArray[index].setMap(map);
        }
      }
    });
  }, 3000);
}

  function initialize() {
    startTimer();
  }
 </script>

</head>
<body onload="initialize()">
  <div id="map"></div>
  <div id="about">
    <a href="https://www.facebook.com/ChenYoFang">My Facebook</a>&nbsp&nbsp&nbsp&nbsp&nbsp
    <a href="http://cyfangnotepad.blogspot.tw/">My Blogger</a>
  </div>
</body>
</html>


執行結果:


資料來源:
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AP&CaseNo2=12&Lang=C

在Google Maps Market 加入InfoWindow

上課寫的範本


<!--停車場Sample url=http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AP&CaseNo2=12&Lang=C -->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf8">
  <title>OpenData Sample 1 by C.Y. Fang </title>
  <style type="text/css">
    html { height: 100% }
    body { height: 100%; margin: 0; padding: 0 }
    #map { height: 90%; width: 100% }
    #about { height: 10%; width: 100% }
  </style>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=zh-TW"></script>
  <script type="text/javascript">
  var markerArray;
  var mapOptions = {
      zoom: 12,
      center: new google.maps.LatLng(22.631386, 120.301951),
      mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map;

  function createMarker(position, title, icon, content, map){
    var marker = new google.maps.Marker({
        position: position,
        title: title,  
        icon: icon
    });

    var infowindow = new google.maps.InfoWindow({
        content: content,
        position: position
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
    });

    google.maps.event.addListener(marker, 'mouseout', function() {
        infowindow.close();
    });

    return marker;
  }

  function startTimer () {
    setInterval(function () {
      var url = "https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20xml%20WHERE%20url%3D%22http%3A%2F%2Fxml11.kctmc.nat.gov.tw%3A8080%2Fxmldata%2FParking.xml%22&format=json&diagnostics=true";
      
      if(map === undefined)
        map = new google.maps.Map(document.getElementById("map"), mapOptions);

      if(markerArray === undefined)
        markerArray = Array();

    $.getJSON(url, function(data){
      if(data){

        var dataInfo = data.query.results.NewDataSet.Data;
        var length = dataInfo.length;

        for(var index = 0; index < length; index++){

          var update = '<p>';
          if(dataInfo[index].UPDATETIME)
            update += '最新更新時間:' + dataInfo[index].UPDATETIME + '<p>';

          var price = '';
          if(dataInfo[index].PRICE !== null)
            price = dataInfo[index].PRICE.toString();

          markerArray[index] = createMarker(
            new google.maps.LatLng(dataInfo[index].N, dataInfo[index].E),
            dataInfo[index].NAME,
            {
              url: 'https://www.iconfinder.com/icons/559874/download/png/32',
              size: new google.maps.Size(32, 32),
              origin: new google.maps.Point(0, 0),
              anchor: new google.maps.Point(0, 32)
            },
            price + update +
            '還有' + dataInfo[index].CAR_NUM + '個車位',
            map
          );

          markerArray[index].setMap(null);
          markerArray[index].setMap(map);
        }
      }
    });
  }, 3000);
}

  function initialize() {
    startTimer();
  }
 </script>

</head>
<body onload="initialize()">
  <div id="map"></div>
  <div id="about">
    <a href="https://www.facebook.com/ChenYoFang">My Facebook</a>&nbsp&nbsp&nbsp&nbsp&nbsp
    <a href="http://cyfangnotepad.blogspot.tw/">My Blogger</a>
  </div>
</body>
</html>

執行結果:



資料來源:
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AP&CaseNo2=12&Lang=C


2015/02/13

Swfit IOS add marker on the Google Maps

Code:
//
//  ViewController.swift
//  Sample
//
//  Created by C.Y.Fang on 2/10/15.
//  Copyright (c) 2015 C.Y.Fang. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    let url = "http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AU&CaseNo2=1&FileType=2&Lang=C&FolderType=O"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        var camera = GMSCameraPosition.cameraWithLatitude(22.60583276,
            longitude: 120.307702,  zoom: 10)
        var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
        self.view = mapView
        let json:AnyObject! = getJsonFromURL(url)
        drawMaker(mapView, json: json)
    }

    private func getJsonFromURL(url:String)->AnyObject?{
        let url = NSURL(string: url)
        let data = NSData(contentsOfURL: url!)
        return NSJSONSerialization.JSONObjectWithData(data!,
            options: NSJSONReadingOptions.AllowFragments, error: nil)
    }
    
    private func drawMaker(mapView:GMSMapView, json:AnyObject?){
        if let array = json as? NSArray {
            for temp in array{
                let name = temp["車站中文名稱"] as NSString!
                let lat = (temp["車站緯度"] as NSString!).doubleValue
                let lng = (temp["車站經度"] as NSString!).doubleValue
                
                var market = GMSMarker()
                market.position =  CLLocationCoordinate2DMake(lat ,lng)
                market.title = name
                market.map = mapView
            }
        }
    }
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


}

執行結果:


2015/02/10

Swift 使用Google Maps SDK for IOS撰寫iPhone App

先下載Google Maps SDK for IOS並解壓縮,下載同時建立專案,並到Google Play Developer Console將Google Maps SDK for iOS功能開啟,建立一組IOS Key






Google Maps SDK for IOS解壓縮後會看到GoogleMaps-iOS-1.9.1資料夾,將『GoogleMaps.framework』和Resources資料夾內的『GoogleMaps.bundle』複製到專案的『Frameworks』資料夾(沒有Frameworks資料夾須自行建立)


『GoogleMaps.framework』複製到專案時,須將Copy Items if needed打勾,並選擇Create folder references

而『GoogleMaps.bundle』複製到專案時,不需將Copy Items if needed打勾,並選擇Create folder references




加入Objective-C Header,名稱隨意打,程式碼為
#import <GoogleMaps/GoogleMaps.h>


Swift 使用Objective-C Library 以Google Maps為例

Swift如果要調用Objective-C則可以在Swift Project內新增一個Objective-C的Header




2014/06/01

PHP 透過file_get_contents取得JSON

PHP可以透過file_get_contents取得檔案內容
取得json時,我們透過json_decode來解譯
同學專案內地址要為中文,我們這次不能跟『Google Geocoding API 透過地址查詢經緯度』文章一樣取得到的地址為英文

所以我們將『Google Geocoding API 透過地址查詢經緯度』的url改成如下方的url

http://maps.googleapis.com/maps/api/geocode/json?address=地址&language=zh-TW

如果想要翻譯成其他國家的語言可以參考『Supported Languages Spreadsheet



2014/03/18

Google Maps API 分析導航功能Sample Code

最近幫忙滅火會用到導航功能,順便寫一下筆記XD

要實現這個功能必須使用Directions Service類別的route方法



route能帶入DirectionsRequest以及一個function
DirectionsRequest這個物件裡面有這些屬性


2014/02/26

透過YQL取得高雄復健醫療院所並繪製到Google Map

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf8">
 <title>OpenData Demo1 by C.Y. Fang</title>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
 <script type="text/javascript">
  function initialize() {
   var temp;
   var mapOptions = {
     zoom: 12,
     center: new google.maps.LatLng(22.631386, 120.301951),
     mapTypeId: google.maps.MapTypeId.ROADMAP,
    }
   var map = new google.maps.Map(document.getElementById("map"), mapOptions);
   var url = "http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fdata.kaohsiung.gov.tw%2FOpendata%2FDownLoad.aspx%3FType%3D2%26CaseNo1%3DAE%26CaseNo2%3D6%26FileType%3D1%26Lang%3DC%22&format=json&diagnostics=true&callback=?";
 
   $.getJSON(url, function(data){
    temp = JSON.parse(data.query.results.body.p);

    if(temp){
     var m_length = temp.length;
     for(var index=0; index<m_length;index++){
 
      var marker = new google.maps.Marker({
       position: new google.maps.LatLng(temp[index].lat, temp[index].lng),
       title:temp[index].org_Text + "\n" 
            + temp[index].informaddress + "\n"
            + temp[index].informtel
      });

      marker.setMap(map);
     }
    }

   });
  }
 </script>
 <style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map { height: 95% ; width: 100% }
 
    </style>
</head>
<body onload="initialize()">
 <div id="map"></div>
</body>
</html>



參考資料:
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AE&CaseNo2=6&Lang=C
http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AE&CaseNo2=6&FileType=1&Lang=C

透過YQL取得高雄市私立課後托育中心並繪製到Google Map

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf8">
 <title>OpenData Demo1 by C.Y. Fang</title>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
 <script type="text/javascript">
  function initialize() {
   var temp;
   var mapOptions = {
     zoom: 12,
     center: new google.maps.LatLng(22.631386, 120.301951),
     mapTypeId: google.maps.MapTypeId.ROADMAP,
    }
   var map = new google.maps.Map(document.getElementById("map"), mapOptions);
   var url = "http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20html%20WHERE%20url%3D%22http%3A%2F%2Fdata.kaohsiung.gov.tw%2FOpendata%2FDownLoad.aspx%3FType%3D2%26CaseNo1%3DAE%26CaseNo2%3D12%26FileType%3D1%26Lang%3DC%22&format=json&diagnostics=true&callback=?";
 
   $.getJSON(url, function(data){
    temp = JSON.parse(data.query.results.body.p);
    
    if(temp){
     var m_length = temp.length;
     for(var index=0; index<m_length;index++){
 
      var marker = new google.maps.Marker({
       position: new google.maps.LatLng(temp[index].lat, temp[index].lng),
       title:temp[index].org_Text + "\n" 
            + temp[index].informaddress + "\n"
            + temp[index].servTime + "\n"
            + temp[index].informtel
      });

      marker.setMap(map);
     }
    }

   });
  }
 </script>
 <style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map { height: 95% ; width: 100% }
 
    </style>
</head>
<body onload="initialize()">
 <div id="map"></div>
</body>
</html>







參考資料:
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AE&CaseNo2=12&Lang=C
http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AE&CaseNo2=12&FileType=1&Lang=C

2014/02/23

透過YQL取得高雄紅橘線捷運車站並繪製到Google Map

謝謝高雄市政府的開源資料,讓我順便學習YQL XDDDD

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf8">
 <title>OpenData Demo1 by C.Y. Fang</title>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
 <script type="text/javascript">
  function initialize() {
   var temp;
   var mapOptions = {
     zoom: 12,
     center: new google.maps.LatLng(22.631386, 120.301951),
     mapTypeId: google.maps.MapTypeId.ROADMAP,
    }
   var map = new google.maps.Map(document.getElementById("map"), mapOptions);
   var url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdata.kaohsiung.gov.tw%2FOpendata%2FDownLoad.aspx%3FType%3D2%26CaseNo1%3DAU%26CaseNo2%3D1%26FileType%3D2%26Lang%3DC%22&format=json&callback=?";

   $.getJSON(url, function(data){
    temp = JSON.parse(data.query.results.body.p);
    if(temp){
     var m_length = temp.length;
     for(var index=0; index<m_length;index++){

      var marker = new google.maps.Marker({
       position: new google.maps.LatLng(temp[index].車站緯度, temp[index].車站經度),
       title:temp[index].車站中文名稱
      });
      marker.setMap(map);
     }

    }
   });
  }
 </script>
 <style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map { height: 95% ; width: 100% }

    </style>
</head>
<body onload="initialize()">
 <div id="map"></div>
</body>
</html>




參考資料:
http://api.jquery.com/jquery.getjson/
http://developer.yahoo.com/yql/console/#h=desc+yql.env
http://data.kaohsiung.gov.tw/Opendata/DetailList.aspx?CaseNo1=AU&CaseNo2=1&Lang=C
http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AU&CaseNo2=1&FileType=2&Lang=C
https://developers.google.com/maps/documentation/javascript/examples/marker-simple

2013/09/22

Google Maps API 街景服務

街景服務是Google Map其中一個功能,街景服務可以讓我們從Google Map小人圖去取得街景


透過小人去取得的街景圖,可以更清楚的知道該路口附近有什麼明顯的指標,像我自己蠻常用這項服務的,自從Google Map出來後,就極少用過別家的地圖服務了!



有了街景圖可以讓我們在查詢街道時有一個相對位置,不過別以店家作為相對位置喔,店家何時會倒都不知道喔!到時候約會遲到或找不到地點就不要怪Google Map,要怪自己把目標用錯!

2013/08/16

Google Maps API 標記動畫

Google Maps是可以有標記,且標記可以用動畫的方式去呈現
標記動畫可是由animation這個類別去提供的,該類別僅提供兩個方法
ConstantDescription
BOUNCEMarker bounces until animation is stopped.
DROPMarker falls from the top of the map ending with a small bounce.

BOUNCE是直到animation為空才停止
DROP則是短暫跳躍


HTML:
<!DOCTYPE html>
<html lang="zh-tw">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=Key Number&sensor=false&region=zh-tw"></script>
    <script type="text/javascript" src="./Script.js"></script>
      <style type="text/css">
        html { height: 100% }
        body { height: 100%; margin: 0; padding: 0 }
        #map { height: 95% ; width: 100% }
        #address { width:40%  }   
      </style>
  </head>
  <body>
    <div id="map"></div>
      </div>
  </body>
</html>


2013/08/15

Google Maps API 自定義標記圖示

Google Maps API 標記』這篇寫完之後,又學習到使用Google提供的小圖示或是自定義圖示去顯示在地圖上。


底下的是Google提供的符號樣式,只會挑『google.maps.SymbolPath.CIRCLE』以及『google.maps.SymbolPath.BACKWARD_CLOSED_ARROW』來作為示範



名稱說明
google.maps.SymbolPath.CIRCLE
google.maps.SymbolPath.BACKWARD_CLOSED_ARROW
google.maps.SymbolPath.FORWARD_CLOSED_ARROW
google.maps.SymbolPath.BACKWARD_OPEN_ARROW
google.maps.SymbolPath.FORWARD_OPEN_ARROW


HTML:
<!DOCTYPE html>
<html lang="zh-tw">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=key number&sensor=false&region=zh-tw"></script>
    <script type="text/javascript" src="./Script.js"></script>
      <style type="text/css">
          html { height: 100% }
          body { height: 100%; margin: 0; padding: 0 }
          #map { height: 95% ; width: 100% }
          #address { width:40%  }  
      </style>
  </head>
  <body onload = "initialize()" >
    <div id="map"></div>
      <div id = "panel">
        <label>地址:</label>
        <input id="address" value="高雄市燕巢區橫山路59號">
        <button onclick="btnClick()">標記</button>
      </div>
  </body>
</html>


2013/08/14

Google Maps API 標記

繼上次這篇『Google Geocoding API 透過地址查詢經緯度』,最近又要開始找房子
可是我又不太想每次都上去Google Maps,所以就來研究一下『疊加層

我直接引用疊加層的說明,所謂的「疊加層」是地圖上繫結到特定經緯度座標的物件,因此在拖曳或縮放地圖時會跟著移動。「疊加層」會反映您在地圖中「加入」的物件 (用以指派點、線條、區域或物件集)。

Maps API 提供數種疊加層類型:


  • 地圖上的單一位置是用標記顯示,標記有時會顯示自訂圖示圖片,在此情況下,標記通常會改稱為「圖示」。標記和圖示是 Marker 類型的物件 (詳情請參閱下方的標記和圖示)。
  • 地圖上的線條則是用折線 (代表一連串依序排列的位置) 顯示。線條是 Polyline 類型的物件 (詳情請參閱折線)。
  • 地圖上的區域如果是任意形狀,就會顯示為多邊形,與折線類似。多邊形與折線相似,都是由一連串依序排列的位置所組成;其與折線不同之處在於,多邊形定義的是它封閉起來的區域 (詳情請參閱下方的多邊形)。
  • 地圖圖層可用疊加層地圖類型顯示。如要建立自己的地圖方塊集,您可以建立自訂地圖類型來取代基本地圖方塊集,或以疊加層的形式顯示在現有基本地圖方塊集上方 (詳情請參閱自訂地圖類型)。
  • 資訊視窗也是一種特殊的疊加層,可以在地圖上方指定位置的氣球式彈出視窗內顯示內容 (通常是文字或圖片,詳情請參閱資訊視窗)。
  • 您也可以實作自己的自訂疊加層。自訂疊加層需實作 OverlayView 介面(詳情請參閱自訂疊加層)。




2013/08/07

Google Geocoding API 透過地址查詢經緯度

Google Geocoding API有提供『地理編碼』,地理編碼就是透過地址轉換成地理座標。相對的也可以透過經緯度轉換為地址

Google Geocoding API 有查詢限制,每天最多發出 2,500 個地理位置要求 ,如果是Google Maps API for Business 使用者每天最多可執行 100,000 個要求

Google Geocoding API又提供JSON以及XML的資料型態,我在這邊的範例是選擇用JSON來做講解

Google Geocoding API又有他自己的格式,如果是用JSON的朋友就用以下的語法

http://maps.googleapis.com/maps/api/geocode/json?

如果是選擇XML的朋友就使用以下的語法

http://maps.googleapis.com/maps/api/geocode/xml?

因為我們要透過地址去查詢取得一個JSON檔案,所以我們將語法改成如下

http://maps.googleapis.com/maps/api/geocode/json?address=台灣高雄市三民區建國二路318號&sensor=false

把該語法貼到網址列,就會得到一個JSON
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "318",
               "short_name" : "318",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Jiànguó 2nd Road",
               "short_name" : "Jiànguó 2nd Road",
               "types" : [ "route" ]
            },
            {
               "long_name" : "港西里",
               "short_name" : "港西里",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Sanmin District",
               "short_name" : "Sanmin District",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Kaohsiung City",
               "short_name" : "Kaohsiung City",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Taiwan",
               "short_name" : "TW",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "807",
               "short_name" : "807",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "No. 318, Jiànguó 2nd Road, Sanmin District, Kaohsiung City, Taiwan 807",
         "geometry" : {
            "location" : {
               "lat" : 22.63961980,
               "lng" : 120.30211060
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 22.64096878029150,
                  "lng" : 120.3034595802915
               },
               "southwest" : {
                  "lat" : 22.63827081970850,
                  "lng" : 120.3007616197085
               }
            }
         },
         "partial_match" : true,
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

這樣就能取得Google Map的JSON,在透過location去取得經緯度。
不過要注意最下面有一個status,status狀態是『OK』才算是取得,其他的可以參考『狀態碼


2013/07/27