Veronika Milovzorova portfolio/ eng

KML ja WEBApi

Veebi API funktsioonid:

KML

(Keyhole Markup Language) on XML-põhine failivorming, mida kasutatakse geograafilise teabe salvestamiseks ja edastamiseks. KML-failid on tavaliselt seotud maakaardirakendustega, nagu Google Earth ja Google Maps. Need võimaldavad kasutajatel luua ja jagada kaardipunkte, teid, polügoone ja muid geograafilisi andmeid.

KML-i mõisted

  • Punkt: Määrab kindla geograafilise koha kaardil, näiteks koduaadress.
  • Polügoon: Aitab kujutada alasid, näiteks hooneid või maapiirkondi.
  • Liin: Võimaldab joonistada teid või muid jooni kaardil.
  • Stiil: KML-is saab määrata, kuidas punktid, jooned ja polügoonid kaardil välja näevad (nt värvid, paksus jne).

Leaflet´i ja Openlayers omadused
OmadusLeafletOpenLayers
KaalKerge (~40 KB)Raskem (~500 KB)
LihtsusVäga lihtneKeerulisem, palju API-d
AndmevormingudPõhilised + pluginadKõik, professionaalne
Suured andmedMitte väga mugavSuurepärane
Kogukond/pluginadVäga paljuVähem
Millal kasutadaLihtsad kaardid veebisGIS/analüütika

Kui vajad lihtsalt KML-i kuvamist, markereid, marsruute ja ilusat veebilehte — vali Leaflet. Kui aga on tarvis professionaalset GIS-i koos projektioonide, analüüsi ja suurte andmehulkadega — vali OpenLayers.

KML-faili loomine ja kodukoha näitamine

Esimeseks on vaja avada link Google My Maps
Teiseks valite “Luua uus kaart”

Loome uus tee (must nool)

Kirjutate otsingus adressid

Ja siis meie tulemus on

Marsruudi loomiseks valime, millega tahame kohale jõuda, ja kohandame marsruuti endale sobivaks.

Mõlema asukoha märkimiseks klõpsame kolme rea kujul oleval nupul, valime oma rea ​​ja tõstame esile. Samuti kirjutad asukohale alla ja tõstad selle oma värviga esile.

Järgmisena ekspordime faili kml-resolutsioonis.

index.html

<!DOCTYPE html>
<html lang="et">
<head>
  <meta charset="utf-8"/>
  <title>KML kaardil</title>

  <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css"/>
  <link rel="stylesheet" href="style.css"/>

  <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
  <script src="https://unpkg.com/leaflet-omnivore/leaflet-omnivore.min.js"></script>
</head>
<body>
<header>
  <h1>KML kaart</h1>
</header>

<div id="map"></div>

<script>
  const homeCoordinates = [59.441656, 24.692083];

  const map = L.map('map').setView(homeCoordinates, 15);

  L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    maxZoom: 19,
    attribution: '© OpenStreetMap contributors'
  }).addTo(map);

  L.marker(homeCoordinates)
          .addTo(map)
          .bindPopup("Minu kodu")
          .openPopup();

  omnivore.kml('teeOma.kml')
          .on('ready', function() {
            map.fitBounds(this.getBounds()); 
          })
          .on('error', function(e) {
            console.error("viga KML:", e);
          })
          .addTo(map);
</script>
</body>
</html>

omatee.kml näide

<Style id="line-1267FF-5000-nodesc-normal">
      <LineStyle>
        <color>ffff6712</color>
        <width>5</width>
      </LineStyle>
      <BalloonStyle>
        <text><![CDATA[<h3>$[name]</h3>]]></text>
      </BalloonStyle>
    </Style>
    <Style id="line-1267FF-5000-nodesc-highlight">
      <LineStyle>
        <color>ffff6712</color>
        <width>7.5</width>
      </LineStyle>
      <BalloonStyle>
        <text><![CDATA[<h3>$[name]</h3>]]></text>
      </BalloonStyle>
    </Style>
    <StyleMap id="line-1267FF-5000-nodesc">
      <Pair>
        <key>normal</key>
        <styleUrl>#line-1267FF-5000-nodesc-normal</styleUrl>
      </Pair>
      <Pair>
        <key>highlight</key>
        <styleUrl>#line-1267FF-5000-nodesc-highlight</styleUrl>
      </Pair>
    </StyleMap>

style.css

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
#map {
    height: 90%;
}
header {
    text-align: center;
    padding: 10px 0;
    background-color: #f2f2f2;
    font-family: Arial, sans-serif;
    font-size: 24px;
    font-weight: bold;
}

Link

https://veronikamilovzorova22.thkit.ee/maps/index.html

en_US