Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla

Ennen tallennusta suositellaan ottamaan kopio muokkausruudusta (ctrl-a -> ctrl-c)

 Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.

Json - kml muunto

Wikikko - kansan taitopankkista
Versio hetkellä 20. kesäkuuta 2026 kello 23.46 – tehnyt Wikikkosysop (keskustelu | muokkaukset)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Johdanto

[muokkaa]

Google Maps Tallennetut -> Google My Maps

[muokkaa]

Tällä ohjeella voi viedä Google Mapsin tähdellä merkityt paikat Google My Mapsiin nimellä tai muihin sovelluksiin, johin kml-tiedosto on kelpo. Skripti muuntaa json-tiedoston kml-tiedostoksi.

  • Huom! Google earth: https://www.earth.google.com > Import file > valitse Google Maps:sta tuotu GeoJSON-tiedosto > Sijainnit näkyvät kartalla hetken kuluttua > vienti KML-muotoon ei kuitenkaan onnistu.
  1. Kun Google Maps-sovellukseen lisätään omia paikkoja ja ne halutaan viedä, vienti onnistuu Google Takeout kautta vain niihin sijainteihin, jotka on tallennettu "Tähdellä merkityt paikat". Esimerkiksi "Haluan käydä"-sijainteja ei saa vietyä (6/2026). Jos kuitenkin näin on tapahtunut paikan saa vaihdettu klikkaamalla sijaintimerkkiä ja sivuvalikosta valitsemalla "Tallennettu" ja lisäämällä sen ensin mainittuun.
  2. Google Takeout > Poista kaikki valinnat > Maps (omat paikat) > GeoJSON > Seuraava vaihe > Luo vienti > Ylläpidä vientejä > ladataan tiedosto tietokoneelle. Tuloksena syntyi .json-tiedosto.
    1. Muodostuneessa json-tiedostossa nimi-kenttä on location-kentän sisäpuolella ja jos tiedosto nyt viedään esimerkiksi Google My Maps, kaikki sijainnit ovat nimettömiä. Seuraava python-skripti muntaa json-tiedoston kml-tiedostoksi ja muodostaa name-kentän, joka näyttää paikan nimen ja lisäksi kentät description johon tulee tietoa tallennetusta merkistä ja coordinates-kenttä.
  3. Muutetaan tiedoston nimeksi tahtimerkit.json > siirretään tiedosto tyhjään tiedostokansioon tietokoneella.
  4. Tehdään tekstieditorilla tiedosto nimeltä muuntaja.py > sijoitetaan sinne alla oleva Python-skrpiti > tallennetaan tiedosto samaan tiedostokansioon kuin json-tiedosto.
  5. Annetaan pääteohjelmassa komento python muuntaja.py
    1. Tuloksena syntyy tahtimerkit.kml -niminen tiedosto.
  6. Tuodaan tiedosto esimerkiksi Google My Maps tai Scenic.
import json
import xml.etree.ElementTree as ET

# Lue Google Takeoutin JSON
with open("tahtimerkit.json", "r", encoding="utf-8") as f:
    data = json.load(f)

# Luo KML-rakenne
kml = ET.Element("kml", xmlns="http://www.opengis.net/kml/2.2")
document = ET.SubElement(kml, "Document")

for item in data.get("features", []):
    props = item.get("properties", {})
    loc = props.get("location", {})
    coords = item.get("geometry", {}).get("coordinates", None)

    if not coords:
        continue

    name = loc.get("name", "Unnamed place")
    address = loc.get("address", "")
    url = props.get("google_maps_url", "")
    date = props.get("date", "")

    pm = ET.SubElement(document, "Placemark")

    name_el = ET.SubElement(pm, "name")
    name_el.text = name

    desc_el = ET.SubElement(pm, "description")
    desc_text = ""
    if address:
        desc_text += address
    if url:
        desc_text += f"\n{url}"
    if date:
        desc_text += f"\nAdded: {date}"
    desc_el.text = desc_text.strip()

    point = ET.SubElement(pm, "Point")
    coord_el = ET.SubElement(point, "coordinates")
    coord_el.text = f"{coords[0]},{coords[1]}"

tree = ET.ElementTree(kml)
tree.write("tahtimerkit.kml", encoding="utf-8", xml_declaration=True)
print("Done. Created tahtimerkit.kml")