第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將谷歌地圖 GeoJSON 轉(zhuǎn)換為 GPX,保留位置名稱

如何將谷歌地圖 GeoJSON 轉(zhuǎn)換為 GPX,保留位置名稱

MM們 2024-01-16 15:41:04
我已通過(guò)外賣工具導(dǎo)出了我的谷歌地圖興趣點(diǎn)(保存的地點(diǎn)/位置)。我如何將其轉(zhuǎn)換為 GPX,以便將其導(dǎo)入 OSMAnd?我嘗試使用 gpsbabel:gpsbabel -i geojson -f my-saved-locations.json -o gpx -F my-saved-locations_converted.gpx但這并沒有保留每個(gè)興趣點(diǎn)的標(biāo)題/名稱 - 而是僅使用 WPT001、WPT002 等名稱。
查看完整描述

3 回答

?
三國(guó)紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

為了使 GPX 針對(duì) OrganicMaps 進(jìn)行優(yōu)化并處理一堆 Google 邊緣情況(例如缺少星標(biāo)位置的坐標(biāo)和描述),我修改了 @DrGecko 的代碼,如下所示:


#!/usr/bin/env python3


import argparse

import json

import re

import xml.etree.ElementTree as ET

from xml.dom import minidom



def ingestJson(geoJsonFilepath):

    poiList = []

    with open(geoJsonFilepath, encoding='utf-8') as fileObj:

        data = json.load(fileObj)

        gmQuery = re.compile("http://maps.google.com/\\?q=([-0-9.]+),([-0-9.]+)")

        for f in data["features"]:

            title = f["properties"].get("location", {}).get("name", '')

            gmapsUrl = f["properties"].get("google_maps_url", '')

            lon = f["geometry"]["coordinates"][0]

            lat = f["geometry"]["coordinates"][1]

            cmt = f["properties"].get("Comment", '')

            link = f["properties"].get("google_maps_url", '')


            # Fill in blanks for Organic Maps

            if cmt == '':

                cmt = '<a href="'+link+'">'+link+'</a>'


            # Handle starred places without proper coordinates/comments

            if lat == 0 and lon == 0:

                if title == '':

                    title = "Starred Place"

                matches = gmQuery.findall(gmapsUrl)

                if len(matches) == 1 and len(matches[0]) == 2:

                    lat = matches[0][0] # Google order is backwards from GeoJSON

                    lon = matches[0][1]

                else:

                    # We have basically no information, so at least provide OM the link

                    cmt = '<a href="'+link+'">'+link+'</a>'


            poiList.append({'title': title,

                            'comment': cmt,

                            'date': f["properties"]["date"],

                            'lon': lon,

                            'lat': lat,

                            'link': link,

                            'address': f["properties"].get("location", {}).get("address", '')})

    return poiList



def dumpGpx(gpxFilePath, poiList):

    gpx = ET.Element("gpx", version="1.1", creator="", xmlns="http://www.topografix.com/GPX/1/1")

    for poi in poiList:

        wpt = ET.SubElement(gpx, "wpt", lat=str(poi["lat"]), lon=str(poi["lon"]))

        ET.SubElement(wpt, "name").text = poi["title"]

        ET.SubElement(wpt, "desc").text = poi["address"]

        ET.SubElement(wpt, "cmt").text = poi["comment"]

        ET.SubElement(wpt, "link").text = poi["link"]

        ET.SubElement(wpt, "time").text = poi["date"]

        ext = ET.SubElement(wpt, "extensions")

        ET.SubElement(ext, "color").text = "0000ff"

    xmlstr = minidom.parseString(ET.tostring(gpx)).toprettyxml(encoding="utf-8", indent="  ")

    with open(gpxFilePath, "wb") as f:

        f.write(xmlstr)



def main():

    parser = argparse.ArgumentParser()

    parser.add_argument('--inputGeoJsonFilepath', required=True)

    parser.add_argument('--outputGpxFilepath', required=True)

    args = parser.parse_args()


    poiList = ingestJson(args.inputGeoJsonFilepath)

    dumpGpx(args.outputGpxFilepath, poiList=poiList)



if __name__ == "__main__":

    main()


查看完整回答
反對(duì) 回復(fù) 2024-01-16
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

最后我通過(guò)創(chuàng)建一個(gè)小的 python 腳本來(lái)在格式之間進(jìn)行轉(zhuǎn)換來(lái)解決這個(gè)問(wèn)題。這可以很容易地適應(yīng)特定需求:


#!/usr/bin/env python3


import argparse

import json

import xml.etree.ElementTree as ET

from xml.dom import minidom



def ingestJson(geoJsonFilepath):

    poiList = []

    with open(geoJsonFilepath) as fileObj:

        data = json.load(fileObj)

        for f in data["features"]:

            poiList.append({'title': f["properties"]["Title"],

                            'lon': f["geometry"]["coordinates"][0],

                            'lat': f["geometry"]["coordinates"][1],

                            'link': f["properties"].get("Google Maps URL", ''),

                            'address': f["properties"]["Location"].get("Address", '')})

    return poiList



def dumpGpx(gpxFilePath, poiList):

    gpx = ET.Element("gpx", version="1.1", creator="", xmlns="http://www.topografix.com/GPX/1/1")

    for poi in poiList:

        wpt = ET.SubElement(gpx, "wpt", lat=str(poi["lat"]), lon=str(poi["lon"]))

        ET.SubElement(wpt, "name").text = poi["title"]

        ET.SubElement(wpt, "desc").text = poi["address"]

        ET.SubElement(wpt, "link").text = poi["link"]

    xmlstr = minidom.parseString(ET.tostring(gpx)).toprettyxml(encoding="utf-8", indent="  ")

    with open(gpxFilePath, "wb") as f:

        f.write(xmlstr)



def main():

    parser = argparse.ArgumentParser()

    parser.add_argument('--inputGeoJsonFilepath', required=True)

    parser.add_argument('--outputGpxFilepath', required=True)

    args = parser.parse_args()


    poiList = ingestJson(args.inputGeoJsonFilepath)

    dumpGpx(args.outputGpxFilepath, poiList=poiList)



if __name__ == "__main__":

    main()

...


可以這樣調(diào)用:


./convert-googlemaps-geojson-to-gpx.py \

  --inputGeoJsonFilepath my-saved-locations.json \

  --outputGpxFilepath my-saved-locations_converted.gpx


查看完整回答
反對(duì) 回復(fù) 2024-01-16
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

還有一個(gè)名為“togpx”的 NPM 腳本: https ://github.com/tyrasd/togpx

我沒有嘗試過(guò),但它聲稱保留盡可能多的信息。


查看完整回答
反對(duì) 回復(fù) 2024-01-16
  • 3 回答
  • 0 關(guān)注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)