顯示具有 地圖 標籤的文章。 顯示所有文章
顯示具有 地圖 標籤的文章。 顯示所有文章

2017年2月21日 星期二

R 以地址取得經緯座標值

假如data.frame data中的lat值為0時,則利用google maps api geocode 查詢地址的經緯座標,並存回 data$lat 與 data$lng 中:

library(ggmap)

for (i in 1:nrow(data)) {
     if (data$lat[i] == 0) {
         addr <- data$service_addr[i]
         url = paste('http://maps.google.com/maps/api/geocode/xml?address=', addr,'&sensor=false',sep='')
         doc = xmlTreeParse(url) 
         root = xmlRoot(doc) 
         data$lat[i] = xmlValue(root[['result']][['geometry']][['location']][['lat']]) 
         data$lng[i] = xmlValue(root[['result']][['geometry']][['location']][['lng']])
     }
}

# 將 data 內容寫入檔案 mymap.csv
write.table(data, file = "mymap.csv", sep = "," )

#

2014年12月16日 星期二

Ruby - 中文地址取得經緯度座標

先使用 gem 安裝 Geocoder
> sudo gem install geocoder

執行 irb :
$ irb

> require 'geocoder'
> my = Geocoder.search("10659 臺北市建國南路二段125號")

執行結果:
 => [#[{"long_name"=>"125", "short_name"=>"125", "types"=>["street_number"]}, {"long_name"=>"Section 2, Jianguo South Road", "short_name"=>"Section 2, Jianguo S Rd", "types"=>["route"]}, {"long_name"=>"新龍里", "short_name"=>"新龍里", "types"=>["administrative_area_level_4", "political"]}, {"long_name"=>"Da’an District", "short_name"=>"Da’an District", "types"=>["administrative_area_level_3", "political"]}, {"long_name"=>"Taipei City", "short_name"=>"Taipei City", "types"=>["administrative_area_level_1", "political"]}, {"long_name"=>"Taiwan", "short_name"=>"TW", "types"=>["country", "political"]}, {"long_name"=>"106", "short_name"=>"106", "types"=>["postal_code"]}], "formatted_address"=>"No. 125, Section 2, Jianguo South Road, Da’an District, Taipei City, Taiwan 106", "geometry"=>{"location"=>{"lat"=>25.029152, "lng"=>121.538369}, "location_type"=>"ROOFTOP", "viewport"=>{"northeast"=>{"lat"=>25.0305009802915, "lng"=>121.5397179802915}, "southwest"=>{"lat"=>25.0278030197085, "lng"=>121.5370200197085}}}, "partial_match"=>true, "types"=>["street_address"]}, @cache_hit=nil>] 

取得陣列裡的資料:
 > my[0].latitude
 => 25.029152 
 > my[0].longitude
 => 121.538369 
 > my[0].address
 => "No. 125, Section 2, Jianguo South Road, Da’an District, Taipei City, Taiwan 106" 
 > my[0].city
 => "Da’an District" 

2012年4月29日 星期日

台灣地圖一步一腳印

台灣地圖一步一腳印計畫實施中。

先以程式大概產生台灣地區經緯度座標,將這些點全部丟上Google Fusion Tables繪出。一邊排除不必要的涵蓋座標區,一邊確認程式產生出足夠的涵蓋點。

不過目前應該還不算是最佳化的涵蓋區域。尚有許多區域是不必要的。


佈滿紅點的台灣地圖

2012年4月20日 星期五

替台灣地圖經緯度加上格線

Google Earth 匯入 KML 繪製格線
以每分為單位,替台灣地圖經緯度加上格線,並以KML檔案格式匯入Google Earth便於畫面呈現。

C程式原始碼 plotGridKML.c:

#include <stdio.h>


void main() {
   float latCount, lngCount;
  
   printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
   printf("<kml xmlns=\"http://www.opengis.net/kml/2.2\">\n");
   printf("  <Document>\n");
   printf("    <name>台灣絕對夠格</name>\n");
   printf("    <description>從東經120.0~122.0, 北緯21.9~25.3, 每一分為區隔</description>\n");
   printf("    <Style id=\"yellowLineGreenPoly\">\n");
   printf("      <LineStyle>\n");
   printf("        <color>7fffffff</color>\n");
   printf("        <width>1</width>\n");
   printf("      </LineStyle>\n");
   printf("      <PolyStyle>\n");
   printf("        <color>7f00ff00</color>\n");
   printf("      </PolyStyle>\n");
   printf("    </Style>\n");
   printf("    <Placemark>\n");
   printf("      <name>台灣絕對夠格</name>\n");
   printf("      <description>從東經120.0~122.0, 北緯21.9~25.3, 每一分為區隔</description>\n");
   printf("      <styleUrl>#yellowLineGreenPoly</styleUrl>\n");
   printf("      <LineString>\n");
   printf("        <extrude>1</extrude>\n");
   printf("        <tessellate>1</tessellate>\n");
   printf("        <altitudeMode>absolute</altitudeMode>\n");
   printf("        <coordinates>\n");
   
   for (latCount = 21.9; latCount <= 25.3; latCount=latCount+0.2) {
      printf("         120.0,%2.1f,2000\n", latCount);
      printf("         122.0,%2.1f,2000\n", latCount);
      printf("         122.0,%2.1f,2000\n", latCount+0.1);
      printf("         120.0,%2.1f,2000\n", latCount+0.1);
      printf("         120.0,%2.1f,2000\n", latCount+0.2);
   }
   printf("         122.0,25.3,2000\n");
   
   for (lngCount = 122.0; lngCount >= 120.2; lngCount=lngCount-0.2) {
      printf("         %3.1f,25.3,2000\n", lngCount);
      printf("         %3.1f,21.9,2000\n", lngCount);
      printf("         %3.1f,21.9,2000\n", lngCount-0.1);
      printf("         %3.1f,25.3,2000\n", lngCount-0.1);
      printf("         %3.1f,25.3,2000\n", lngCount-0.2);
   }
   printf("         120.0,21.9,2000\n");
   printf("        </coordinates>\n");
   printf("      </LineString>\n");
   printf("    </Placemark>\n");
   printf("  </Document>\n");
   printf("</kml>\n");
}


利用GCC編譯完成後,執行

$ gcc plotGridKML.c -o plotGridKML
$ plotGridKML > grid.kml

再將 grid.kml 匯入 Google Earth 即可。

#

2011年11月30日 星期三

Google 室內地圖

Google地圖不僅有衛星、街景地圖,現在也開始提供國外一些機場、店家的室內地圖(indoor Google Maps)。

使用Android手機的朋友更新到 Google Maps 6.0 就可以開始體驗服務囉。

原文:Examples of indoor Google Maps


2011年5月2日 星期一

海國聞見錄 (1730年) - 臺灣圖、臺灣後山圖、澎湖圖

《海國聞見錄》,陳倫炯撰。倫炯字次安,號資齋;福建同安人。作者自序作於雍正八年(西元1730年)。


下列各圖整理自《海國聞見錄》一書:


海國聞見錄-臺灣圖
海國聞見錄-臺灣後山圖

海國聞見錄-澎湖圖


延伸閱讀:維基文庫-海國聞見錄

2011年4月22日 星期五

利用 geoplugin.net 取得 IP 位址所在地

http://www.geoplugin.com/ 提供了一些好用的 geolocation Web Services :
http://www.geoplugin.net/php.gp?ip={YOUR_IP}

http://www.geoplugin.net/json.gp?ip={YOUR_IP}

http://www.geoplugin.net/xml.gp?ip={YOUR_IP}
可以透過 IP 位址來查詢、取得各種格式的所在地的地理資訊。

以 Hinet Proxy IP 為例:http://www.geoplugin.net/json.gp?ip=61.219.36.250
傳回 JSON 格式:
geoPlugin({
"geoplugin_city":"Taipei",
"geoplugin_region":"T'ai-pei",
"geoplugin_areaCode":"0",
"geoplugin_dmaCode":"0",
"geoplugin_countryCode":"TW",
"geoplugin_countryName":"Taiwan",
"geoplugin_continentCode":"AS",
"geoplugin_latitude":"25.039199829102",
"geoplugin_longitude":"121.52500152588",
"geoplugin_regionCode":"03",
"geoplugin_regionName":"T'ai-pei",
"geoplugin_currencyCode":"TWD",
"geoplugin_currencySymbol":"NT$",
"geoplugin_currencyConverter":29.1150016785
})

2011年3月14日 星期一

2010年5月24日 星期一

ubuntu 10.04 安裝 Google Earth 5 繁體中文版 (解決亂碼視窗選單)

至 Google 地球下載安裝檔 (http://earth.google.com/intl/zh-TW/index.html)後,至「下載」目錄下可以發現下載完成的檔案。

cd /home/[username]/下載/
chmod +x GoogleEarthLinux.bin
sudo ./GoogleEarthLinux.bin


安裝完後,先別急著執行 Google Earth程式。先下載安裝下列4個程式庫套件。

sudo apt-get install libqtgui4
sudo apt-get install libqtcore4
sudo apt-get install libqt4-webkit
sudo apt-get install libqt4-network


安裝上述套件過程中,有可能會發生 libqtcore4, libqt4-network 已經安裝過的訊息。沒關係,別管他就是了。
接著就是要將Google Earth內建的程式庫套件換成我們剛才安裝的。

su -
/opt/google-earth
mv libQtCore.so.4 libQtCore.so.4.bak
mv libQtGui.so.4 libQtGui.so.4.bak
mv libQtNetwork.so.4 libQtNetwork.so.4.bak
mv libQtWebKit.so.4 libQtWebKit.so.4.bak
ln -s /usr/lib/libQtCore.so libQtCore.so.4
ln -s /usr/lib/libQtGui.so.4.5.3 libQtGui.so.4
ln -s /usr/lib/libQtNetwork.so.4.5.3 libQtNetwork.so.4
ln -s /usr/lib/libQtWebKit.so.4.5.3 libQtWebKit.so.4


完成了!現在執行 Google Earth 應該就能看到完整中文選單囉。

2009年8月18日 星期二

Google Maps 有台灣街景囉



來源:Google地圖

無論是iPhone、Android或是電腦螢幕前的Google地圖,都有支援街景(Street View)模式囉。

讚啦!

2009年7月19日 星期日

名人的私房地圖

想要知道名人推薦的私房地圖嗎?Google Maps結合全球各地名人推出名人地圖分享,也許有機會還能遇到名人喔~


名人地圖

2009年3月17日 星期二

Google Maps 上的街景(Street View)模式

iPhone上的「地圖(Google Maps)」雖然無法取代行動導航機,但搭配手機的定位功能還真是個實用的工具。



將搜尋到的結果先用"大頭針"標記起來


點選"大頭針"文字說明左邊的[橘色小人]


進入Street View模式


目前已經有北美、日本等地區的Google地圖提供Street View模式。台灣也預計在今年就能看到囉~

2009年2月9日 星期一

我的朋友你在何方?


雖然也不是什麼新鮮概念,但畢竟整合好自家地圖的 Google Latitude 還是值得一試。

早先電信業者們因為怕涉及使用者隱私與法令問題,若改由使用者自發選擇揭露部份隱私的服務,應該就比較無此爭端(?)。畢竟由使用者自己所選,也比較無此爭議(?)。

如果應用在容易走失的小狗、小朋友,應該也還算實用吧。XD