轉移 google map place 到 kml

轉移 google map place 到 kml

任何資料都不應該被單一雲端應用綁住。不知不覺間常常使用 Google Map 去標記常用的地點,驚訝的發現 Google Map 居然沒有匯出或是轉移的功能。於是做了一下功課,以下紀錄結果。

匯出

我查過 Google Map Place API 沒有 export 的功能,再查也沒有手動匯出的方式,除了 Google Takeout,從滿多地方可以看到討論有關如何從 Takeout 匯出

基本上就是先到 google takeout 網頁進行操作,網址:https://takeout.google.com

建議先取消全選 再選取 地圖 (最愛地點)

格式不用調整

依序完成 takeout 設定之後,可以等 mail 收到下載連結。

或是存到其他空間。

我是選 mail 所以會收到下載連結

就存檔吧。

這邊比較可惜是不能設定持續,因為最多也就一年(6次),所以,網頁也只能手動處理,非常不甘願...

轉檔

雖然 GeoJSON 已經很多軟體有支援,but 我剛好要用的是 kml 。所以,上網找了 python kml ,不是很複雜,尤其是 simplekml真的就是 SIMPLE...

直接拿 example 改寫,還比上網找工具快

import json
import simplekml

f = open('googlemap.json')
mapdata = json.load(f)
kml = simplekml.Kml()
kml.document.name = "google"

debug = True

for point in mapdata['features']:
    geometry = point['geometry']
    properties = point['properties']
    if 'location' in properties:
        location = properties['location']
        name = location['name']
        address = location['address'] if 'address' in location else ''
        country_code = location['country_code'] if 'country_code' in location else ''
        if 'coordinates' in geometry:
            lon = geometry['coordinates'][0]
            lat = geometry['coordinates'][1]
        coordinates = [(lon, lat)]
        pdate = properties['date'] if 'date' in properties else ''
        url = properties['google_maps_url'] if 'google_maps_url' in properties else ''
        description = "{}\n{}\n{}\n{}".format(address, country_code, pdate, url)

        if debug == True: print(name, coordinates, description)
        pnt = kml.newpoint(name=name)
        pnt.coords = coordinates
        #pnt.address = address
        #pnt.snippet.content = url
        pnt.description="address: {} ({})\n  datetime: {}\n url: {}".format(address, country_code, pdate, url)
        
kml.save("googlemapPlace.kml")

Organic Maps

Organic Maps 就是之前的 maps.me,直接丟到檔案傳給 map app 就可以匯入 bookmark。

reference

https://support.google.com/maps/thread/69338785/how-can-i-get-export-to-export-all-saved-places?hl=en
https://simplekml.readthedocs.io
https://organicmaps.app/news/
https://Maps.me