Tilastokeskuksen ja Maanmittauslaitoksen OCP API Features rajapintojen hyödyntäminen R-kielellä

ogc api
spatial
data
R
maastotietokanta
tilastokeskus
mml
Tekijä
Julkaistu

25. tammikuuta 2023

Mikäli Open Geospatial Consortiumin rajapintastandardit eivät ole tuttuja, asiaan perehtyminen kannattaa aloittaa Jari Reinin artikkelista OGC API Features määrittelee uudet suuntaviivat rajapintapalveluille (Positio 1/2020).

Sekä Maanmittauslaitos että Tilastokeskus ovat alkaneet jakamaan avoimia aineistojaan aikaisempien WFS-rajapintojen rinnalle myös OGC API Features standardia mukaisilla rajapinnoilla.

Tilastokeskuksen hallinnollisten aluerajojen rajapinnat

Tilastokeskuksen Avoimet paikkatietoaineistot -sivulla tilannetta kuvataan

Tilastokeskuksen aineistot ovat saatavilla WMS- ja WFS-rajapinnalta. Osa aineistosta on saatavana myös INSPIRE-direktiivin mukaisessa muodossa sekä WMS-rajapinnalta että uudentyyppiseltä OGC API Features -rajapinnalta.

Tässä esimerkissä olemme kiinnostuneet vuoden 2022 kuntajaosta. wfs-rajapinnasta se löytyy polusta http://geo.stat.fi/geoserver/wfs?service=WFS&version=1.0.0&request=getFeature&typename=tilastointialueet%3Akunta4500k_2022. Sen voi lukea R:ään suoraan sf::st_read()-funktiolla. Koska GML-data ei sisällä tietoa koordinaattijärjestelmästä, se täytyy erikseen asettaa lukemisen yhteydessä. Tiedän että Tilastokeskuksen kuntarajoille se on epsg:3067 (ETRS89 / TM35FIN)

library(sf)
library(dplyr)
library(ggplot2)
library(patchwork)
library(purrr)
library(kableExtra)
library(knitr)
library(httr2)
library(mapview)

muni_wfs <- st_read("http://geo.stat.fi/geoserver/wfs?service=WFS&version=1.0.0&request=getFeature&typename=tilastointialueet%3Akunta4500k_2022", crs = 3067)
Reading layer `kunta4500k_2022' from data source 
  `http://geo.stat.fi/geoserver/wfs?service=WFS&version=1.0.0&request=getFeature&typename=tilastointialueet%3Akunta4500k_2022' 
  using driver `GML'
Simple feature collection with 309 features and 6 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 83747.59 ymin: 6637032 xmax: 732907.7 ymax: 7776431
Projected CRS: ETRS89 / TM35FIN(E,N)
head(muni_wfs)
Simple feature collection with 6 features and 6 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 250110.7 ymin: 6704556 xmax: 442401.8 ymax: 7133254
Projected CRS: ETRS89 / TM35FIN(E,N)
             gml_id kunta vuosi      nimi      namn      name
1 kunta4500k_2022.1   005  2022  Alajärvi  Alajärvi  Alajärvi
2 kunta4500k_2022.2   009  2022 Alavieska Alavieska Alavieska
3 kunta4500k_2022.3   010  2022    Alavus     Alavo    Alavus
4 kunta4500k_2022.4   016  2022  Asikkala  Asikkala  Asikkala
5 kunta4500k_2022.5   018  2022    Askola    Askola    Askola
6 kunta4500k_2022.6   019  2022      Aura      Aura      Aura
                            geom
1 MULTIPOLYGON (((366787.9 70...
2 MULTIPOLYGON (((382543.4 71...
3 MULTIPOLYGON (((343298.2 69...
4 MULTIPOLYGON (((436139.7 67...
5 MULTIPOLYGON (((426631 6720...
6 MULTIPOLYGON (((263938.3 67...

Sama tieto löytyy ns. Inspire-direktiivin mukaisena OGC API Features rajapinnasta geojson-muodossa osoitteesta: https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=10&f=json. Merkille pantavaa tässä uudessa standardissa on se ladattavaa aineistoon voi vaikuttaa antamalla rajapinnalle erilaisia parametrejä. Aineistoa voi filttereröidä tai sen tiedostomuotoa tai koordinaattijärjestelmää voi muuttaa apin parametreillä.

Oletuksena se palauttaa hallinnollisten aluerajojen rajapinnasta 10 ensimmäistä aluetta ESPF:3067-koordinaattijärjestelmässä resoluutiolla 1:4500000 json-muodossa. Alla on ote vastauksesta, jossa on mukana ensimmäinen tietue ilman koordinaatteja, Etelä-Suomen AVI, sekä muut apin palauttamat tiedot.

{
    "type": "FeatureCollection",
    "crs": {
        "type": "name",
        "properties": {
            "name": "http://www.opengis.net/def/crs/EPSG/0/3067"
        }
    },
    "features": [{
        "id": "http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/avi_1_20220101_1/2022/4500k",
        "type": "Feature",
        "geometry": {
            "type": "MultiPolygon",
            "coordinates": [
                [
                    [
                        [
                            272652.088811277,
                            6637031.52697968
                        ]
                    ]
                ]
            ]
        },
        "properties": {
            "featureType": "AreaStatisticalUnit",
            "inspireId_localId": "avi_1_20220101_1",
            "inspireId_versionId": "2022",
            "inspireId_namespace": "http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit",
            "beginLifespanVersion": "2022-01-01T00:00:00+0200",
            "endLifespanVersion": "2023-01-01T00:00:00+0200",
            "country": "http://inspire.ec.europa.eu/codeList/CountryCode/FI",
            "geographicalName_fin": "Etelä-Suomen AVI",
            "geographicalName_swe": "Södra Finlands RFV",
            "geographicalName_eng": "Southern Finland AVI",
            "nationalCode": "1",
            "tessellation": "avi",
            "tessellationId": "avi_1_20220101",
            "thematicId": null,
            "referencePeriod_beginPosition": "2022-01-01T00:00:00+0200",
            "referencePeriod_endPosition": "2023-01-01T00:00:00+0200",
            "areaValue": 42349.28,
            "areaValue_uom": "km2",
            "landAreaValue": 29897.189999999988,
            "landAreaValue_uom": "km2",
            "geometry_geometryDescription": "http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry",
            "geometry_scale": "4500k"
        }
    }],
    "timeStamp": "2023-01-26T09:44:54.696Z",
    "links": [{
        "href": "https://geo.stat.fi:443/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=10&f=json",
        "rel": "self",
        "type":"application/geo+json",
        "title":"This document"
    },{
        "href": "https://geo.stat.fi:443/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=10&f=html",
        "rel": "alternate",
        "type":"text/html",
        "title":"This document"
    },{
        "href": "https://geo.stat.fi:443/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=10&nextToken=10",
        "rel": "next",
        "type":"application/geo+json",
        "title":"Next results"
    },{
        "href": "https://geo.stat.fi:443/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=10&nextToken=10&f=html",
        "rel": "next",
        "type":"text/html",
        "title":"Next results"
    }],
    "numberReturned": 10
}

Rajapinta sivuttaa vastaukset ja palautta oletuksena 10 tietuetta. Mikäli siinä eivät olleet kaikki, vastauksessa on myös linkki seuraavalle sivulle, missä on seuraavat 10 tietuetta. Palautettavien tietueiden määrän voi asettaa api-kutsuun limit=100 parametrillä. Tietueen properties-kentässä ovat datan ns. muuttujat ja kutsuttaessa apia dataa voi suodattaa näiden muuttujien avulla. Tässä tapauksessa meitä kiinnostaa erityisesti muuttuja tessellation, josta näyttäisi voivan valita aluejaon.

En löytänyt rajapinnan dokumentaatiosta https://geo.stat.fi/inspire/ogc/api/su tietoa siitä, mitä arvoja tessellation voi saada. Haetaan siksi koko aineisto oheisella while-luupilla, joka hakee aina 50 vastausta kerrallaan kunnesta vastauksessa ei enää ole linkkiä seuraavalle sivulle.

library(httr2)
library(dplyr)
url_items <- "https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=50&f=json"
next_exists <- TRUE
i <- 1
data_list <- list()
while (next_exists) {
  print(i)
  req <- request(url_items)
  resp <- req_perform(req)
  # read the raw response into a list item as a data
  data_list[[i]] <- st_read(resp_body_string(resp))
  # then check if the api offers more (if next link exists)
  resp_json <- resp_body_json(resp)
  link_rels <- resp_json$links %>% purrr:: modify(c("rel")) %>% unlist()
  if ("next" %in% link_rels){
    next_exists <- TRUE
    # next link
    url_items <- resp_json$links %>% purrr::keep(function(x) x$rel == "next") %>% .[[1]] %>% .$href
  } else {
    next_exists <- FALSE
  }
  i <- i + 1
}
all_features <- do.call("bind_rows", data_list)
dim(all_features)
# [1] 494  24

Rajapinnasta löyty siis kaiken kaikkiaan 494 riviä. Katsotaan seuraavaksi tessellation-muuttujan eri arvot.

all_features %>% 
  st_drop_geometry() %>% 
  count(tessellation)
#       tessellation   n
# 1              avi   7
# 2              ely  16
# 3  hyvinvointialue  23
# 4            kunta 309
# 5         maakunta  19
# 6       seutukunta  69
# 7         suuralue   5
# 8 tyossakayntialue  33
# 9       vaalipiiri  13

Nyt voimme ladata pelkät kunnat seuraavasta polusta https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=310&f=json&tessellation=kunta. Huomataan että datassa on huomattavasti enemmän muuttujia kuin WFS-rajapinnan kautta haetussa.

kunnat <- st_read("https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=310&f=json&tessellation=kunta")
Reading layer `OGRGeoJSON' from data source 
  `https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=310&f=json&tessellation=kunta' 
  using driver `GeoJSON'
Simple feature collection with 309 features and 23 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 83747.59 ymin: 6637032 xmax: 732907.7 ymax: 7776431
Projected CRS: ETRS89 / TM35FIN(E,N)
head(kunnat)
Simple feature collection with 6 features and 23 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 250110.7 ymin: 6704556 xmax: 442401.8 ymax: 7133254
Projected CRS: ETRS89 / TM35FIN(E,N)
                                                                                        id
1 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/kunta_1_20230101_005/2023/4500k
2 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/kunta_1_20230101_009/2023/4500k
3 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/kunta_1_20230101_010/2023/4500k
4 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/kunta_1_20230101_016/2023/4500k
5 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/kunta_1_20230101_018/2023/4500k
6 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit/kunta_1_20230101_019/2023/4500k
          featureType    inspireId_localId inspireId_versionId
1 AreaStatisticalUnit kunta_1_20230101_005                2023
2 AreaStatisticalUnit kunta_1_20230101_009                2023
3 AreaStatisticalUnit kunta_1_20230101_010                2023
4 AreaStatisticalUnit kunta_1_20230101_016                2023
5 AreaStatisticalUnit kunta_1_20230101_018                2023
6 AreaStatisticalUnit kunta_1_20230101_019                2023
                                       inspireId_namespace beginLifespanVersion
1 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit           2023-01-01
2 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit           2023-01-01
3 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit           2023-01-01
4 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit           2023-01-01
5 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit           2023-01-01
6 http://paikkatiedot.fi/so/1000520/su/AreaStatisticalUnit           2023-01-01
  endLifespanVersion                                             country
1         2024-01-01 http://inspire.ec.europa.eu/codeList/CountryCode/FI
2         2024-01-01 http://inspire.ec.europa.eu/codeList/CountryCode/FI
3         2024-01-01 http://inspire.ec.europa.eu/codeList/CountryCode/FI
4         2024-01-01 http://inspire.ec.europa.eu/codeList/CountryCode/FI
5         2024-01-01 http://inspire.ec.europa.eu/codeList/CountryCode/FI
6         2024-01-01 http://inspire.ec.europa.eu/codeList/CountryCode/FI
  geographicalName_fin geographicalName_swe geographicalName_eng nationalCode
1             Alajärvi             Alajärvi             Alajärvi          005
2            Alavieska            Alavieska            Alavieska          009
3               Alavus                Alavo               Alavus          010
4             Asikkala             Asikkala             Asikkala          016
5               Askola               Askola               Askola          018
6                 Aura                 Aura                 Aura          019
  tessellation   tessellationId thematicId referencePeriod_beginPosition
1        kunta kunta_1_20230101       <NA>                    2023-01-01
2        kunta kunta_1_20230101       <NA>                    2023-01-01
3        kunta kunta_1_20230101       <NA>                    2023-01-01
4        kunta kunta_1_20230101       <NA>                    2023-01-01
5        kunta kunta_1_20230101       <NA>                    2023-01-01
6        kunta kunta_1_20230101       <NA>                    2023-01-01
  referencePeriod_endPosition areaValue areaValue_uom landAreaValue
1                  2024-01-01   1056.75           km2       1008.77
2                  2024-01-01    253.02           km2        251.50
3                  2024-01-01   1151.50           km2       1087.23
4                  2024-01-01    755.55           km2        563.39
5                  2024-01-01    218.03           km2        212.44
6                  2024-01-01     95.58           km2         95.01
  landAreaValue_uom
1               km2
2               km2
3               km2
4               km2
5               km2
6               km2
                                                geometry_geometryDescription
1 http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry
2 http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry
3 http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry
4 http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry
5 http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry
6 http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry
  geometry_scale                       geometry
1          4500k MULTIPOLYGON (((366787.9 70...
2          4500k MULTIPOLYGON (((382543.4 71...
3          4500k MULTIPOLYGON (((343298.2 69...
4          4500k MULTIPOLYGON (((436139.7 67...
5          4500k MULTIPOLYGON (((426631 6720...
6          4500k MULTIPOLYGON (((263938.3 67...

Lopuksi vielä katsotaan rajapinnasta mitä muita versioita vuoden 2022 aineistosta olisi tarjolla, niin huomataan että data on rajolla kahdessa eri koordinaattijärjestelmässä ja kahdessa eri resoluutiossa. Haetaan vielä kahden eri koordinaattijärjestelmän versiot ja piirretään vierekkäin

EPSG_3067 <- st_read("https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=310&f=json&tessellation=kunta")
Reading layer `OGRGeoJSON' from data source 
  `https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_3067/items?limit=310&f=json&tessellation=kunta' 
  using driver `GeoJSON'
Simple feature collection with 309 features and 23 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 83747.59 ymin: 6637032 xmax: 732907.7 ymax: 7776431
Projected CRS: ETRS89 / TM35FIN(E,N)
EPSG_4326 <- st_read("https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_4326/items?limit=310&f=json&tessellation=kunta")
Reading layer `OGRGeoJSON' from data source 
  `https://geo.stat.fi/inspire/ogc/api/su/collections/AreaStatisticalUnit_4500k_EPSG_4326/items?limit=310&f=json&tessellation=kunta' 
  using driver `GeoJSON'
Simple feature collection with 309 features and 23 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 19.47275 ymin: 59.80841 xmax: 31.5867 ymax: 70.0921
Geodetic CRS:  WGS 84 (CRS84)
library(patchwork)
library(ggplot2)
p1 <- ggplot(EPSG_3067) + geom_sf() + labs(title = "EPSG_3067")
p2 <- ggplot(EPSG_4326) + geom_sf() + labs(title = "EPSG_4326")
wrap_plots(list(p1,p2))

# you need an api key
mml_api_key <- "936f5fb4-ddbb-4a95-85bb-4b5ff7a19789"

urli <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/kiinteisto-avoin/simple-features/v3/collections/KiinteistotunnuksenSijaintitiedot/items?f=json&api-key=",mml_api_key)
building_points_helsinki <- st_read(paste0(urli,
                                           "&bbox=24.940681,60.167422,24.951046,60.169834"))

Maanmittauslaitoksen avoimet OGC API Features -rajapinnat

Maanmittauslaitoksen rajapinnat edellyttävät api-avaimen käyttöä. Api-avaimia ei pidä kirjoittaa suoraan skripteihin. Yksi parempi tapa on tallentaa api-avaimet ympäristömuuttujiksi ja lukea arvo ympäristömuuttujasta Sys.getenv()-funktiolla.

# Tallenna ympäristömuuttuja esim .Rprofile -tiedostoon.
Sys.setenv("MML_API_KEY"="4b5ff7a19789-4a95-85bb-ddbb-936f5fb4")
# lue avain objektiksi sessioon
mml_api_key <- Sys.getenv("MML_API_KEY")

Maastotietokanta

Palvelu tarjoaa tietoja muun muassa liikenneverkoista, rakennuksista ja rakenteista, hallintorajoista, nimistöstä, maankäytöstä, vesistöistä ja korkeussuhteista. Aineistolähteenä on Maanmittauslaitoksen Maastotietokanta, jonka kohteita pidetään jatkuvasti ajan tasalla.

Listataan aluksi eri collectionit ie. apien endpointit:

mml_api_key <- Sys.getenv("MML_API_KEY")

url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections?api-key=", mml_api_key)
resp <- request(url) %>% 
  req_perform()
resp_list <- resp_body_json(resp)

collects <- resp_list$collections
ids <- collects |> modify(c("id")) %>% unlist()
titles <- collects |> modify(c("title")) %>% unlist()
descriptions <- collects |> modify(c("description")) %>% unlist()
link_list <- list()
for (i in 1:length(collects)) link_list[[i]] <- collects[[i]]$links[[1]]$href
tibble(id = ids, 
       # title = titles,
       link = unlist(link_list)#, 
       # description = descriptions
       ) %>% arrange(id) %>% kable() %>% kable_styling()
id link
aallonmurtaja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/aallonmurtaja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
aidansymboli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/aidansymboli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
aita https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/aita/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
allas https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/allas/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
aluemerenulkoraja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/aluemerenulkoraja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
ampumaalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/ampumaalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
ankkuripaikka https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/ankkuripaikka/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
autoliikennealue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/autoliikennealue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
harvalouhikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/harvalouhikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
hautausmaa https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/hautausmaa/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
hietikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/hietikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
hylky https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/hylky/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
hylynsyvyys https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/hylynsyvyys/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
ilmaradankannatinpylvas https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/ilmaradankannatinpylvas/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
ilmarata https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/ilmarata/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
jarvi https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/jarvi/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
jyrkanne https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/jyrkanne/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kaatopaikka https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kaatopaikka/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kaislikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kaislikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kallioalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kallioalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kalliohalkeama https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kalliohalkeama/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kalliosymboli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kalliosymboli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kansallispuisto https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kansallispuisto/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
karttasymboli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/karttasymboli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kellotapuli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kellotapuli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kivi https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kivi/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kivikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kivikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
korkeuskayra https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/korkeuskayra/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
korkeuskayrankorkeusarvo https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/korkeuskayrankorkeusarvo/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
koski https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/koski/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kunnanhallintokeskus https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kunnanhallintokeskus/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kunnanhallintoraja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kunnanhallintoraja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
kunta https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/kunta/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
lahde https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/lahde/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
lahestymisvalo https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/lahestymisvalo/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
lentokenttaalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/lentokenttaalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
louhos https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/louhos/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
luiska https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/luiska/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
luonnonpuisto https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/luonnonpuisto/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
luonnonsuojelualue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/luonnonsuojelualue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
maaaineksenottoalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/maaaineksenottoalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
maasto2kuvionreuna https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/maasto2kuvionreuna/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
maastokuvionreuna https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/maastokuvionreuna/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
maatalousmaa https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/maatalousmaa/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
maatuvavesialue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/maatuvavesialue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
masto https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/masto/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
mastonkorkeus https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/mastonkorkeus/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
matalikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/matalikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
meri https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/meri/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
merkittavaluontokohde https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/merkittavaluontokohde/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
metsamaankasvillisuus https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/metsamaankasvillisuus/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
metsamaanmuokkaus https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/metsamaanmuokkaus/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
metsanraja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/metsanraja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
muistomerkki https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/muistomerkki/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
muuavoinalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/muuavoinalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
muuntaja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/muuntaja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
muuntoasema https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/muuntoasema/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
nakotorni https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/nakotorni/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
niitty https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/niitty/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
osoitepiste https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/osoitepiste/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
paikannimi https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/paikannimi/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
pato https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/pato/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
pelastuskoodipiste https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/pelastuskoodipiste/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
pistolaituriviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/pistolaituriviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
portti https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/portti/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
puisto https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/puisto/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
puu https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/puu/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
puurivi https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/puurivi/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rajavyohykkeentakaraja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rajavyohykkeentakaraja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rakennelma https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rakennelma/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rakennus https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rakennus/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rakennusreunaviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rakennusreunaviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rauhoitettukohde https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rauhoitettukohde/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rautatie https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rautatie/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rautatieliikennepaikka https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rautatieliikennepaikka/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
rautatiensymboli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/rautatiensymboli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
retkeilyalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/retkeilyalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
sahkolinja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/sahkolinja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
sahkolinjansymboli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/sahkolinjansymboli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
satamaalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/satamaalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
savupiippu https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/savupiippu/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
savupiipunkorkeus https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/savupiipunkorkeus/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
selite https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/selite/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
sisaistenaluevesienulkoraja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/sisaistenaluevesienulkoraja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
soistuma https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/soistuma/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
sulkuportti https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/sulkuportti/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suo https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suo/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suojaalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suojaalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suojaalueenreunaviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suojaalueenreunaviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suojametsa https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suojametsa/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suojametsanreunaviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suojametsanreunaviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suojanne https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suojanne/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suojelualueenreunaviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suojelualueenreunaviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
suurjannitelinjanpylvas https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/suurjannitelinjanpylvas/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
syvyyskayra https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/syvyyskayra/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
syvyyskayransyvyysarvo https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/syvyyskayransyvyysarvo/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
syvyyspiste https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/syvyyspiste/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
taajaanrakennettualue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/taajaanrakennettualue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
taajaanrakennetunalueenreuna https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/taajaanrakennetunalueenreuna/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
taytemaa https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/taytemaa/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tervahauta https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tervahauta/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tienroteksti https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tienroteksti/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tiesymboli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tiesymboli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tieviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tieviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tulentekopaikka https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tulentekopaikka/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tulvaalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tulvaalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tunnelinaukko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tunnelinaukko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
turvalaite https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/turvalaite/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
tuulivoimala https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/tuulivoimala/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
uittolaite https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/uittolaite/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
uittoranni https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/uittoranni/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
ulkojasisasaaristonraja https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/ulkojasisasaaristonraja/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
urheilujavirkistysalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/urheilujavirkistysalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
valtakunnanrajapyykki https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/valtakunnanrajapyykki/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
varastoalue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/varastoalue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vedenpinnankorkeusluku https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vedenpinnankorkeusluku/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesiasteikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesiasteikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesikivi https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesikivi/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesikivikko https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesikivikko/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesikulkuvayla https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesikulkuvayla/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesikulkuvaylankulkusuunta https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesikulkuvaylankulkusuunta/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesikulkuvaylanteksti https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesikulkuvaylanteksti/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesikuoppa https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesikuoppa/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
vesitorni https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesitorni/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
viettoviiva https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/viettoviiva/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
virtausnuoli https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/virtausnuoli/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
virtavesialue https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/virtavesialue/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
virtavesikapea https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/virtavesikapea/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789

Olemme kiinnostuneita vesitorneista ja kun limit=500 niin kysely palauttaa 360 riviä eli ilmeisesti kaikki maan vesitorni.

url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesitorni/items?f=json&limit=500&api-key=", mml_api_key)
vesitorni <- st_read(url)
Reading layer `OGRGeoJSON' from data source 
  `https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/vesitorni/items?f=json&limit=500&api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789' 
  using driver `GeoJSON'
Simple feature collection with 360 features and 8 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 19.92564 ymin: 59.82486 xmax: 30.91939 ymax: 67.43815
Geodetic CRS:  WGS 84
head(vesitorni)
Simple feature collection with 6 features and 8 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 22.70524 ymin: 59.91901 xmax: 26.44591 ymax: 61.03902
Geodetic CRS:  WGS 84
     mtk_id sijaintitarkkuus korkeustarkkuus aineistolahde    alkupvm suunta
1 192742673             3000             201             1 2013-09-11      0
2 292674651             3000             201             1 2013-09-13      0
3 292710718             3000             201             1 2013-09-16      0
4 265747955             3000             201             1 2013-11-19      0
5 335399008             3000             201             1 2013-08-13      0
6 379113885             3000             201             1 2013-09-30      0
  kohderyhma kohdeluokka                  geometry
1         47       45800 POINT (23.85855 59.91901)
2         47       45800 POINT (24.60504 60.80946)
3         47       45800 POINT (24.64785 60.93163)
4         47       45800 POINT (25.30042 60.63316)
5         47       45800 POINT (26.44591 60.72273)
6         47       45800 POINT (22.70524 61.03902)

Piirettään kartta

ggplot() + 
  geom_sf(data = st_union(EPSG_3067)) +  
  geom_sf(data = vesitorni, color = "blue")

Toinen mikä kiinnostaa on hautausmaat, mutta koska niitä on paljon käytetään tässä nyt spatiaalista rajausta bounding boxilla. Tehdään http://bboxfinder.com-palvelussa boksi Kolin ja Ilomantsin taajaman ympärille seuraavasti ja kopioidaan sen antama bbox-koordinaatit 29.870453,62.647023,31.014404,63.058071.

Sitten tehdään haku pelkästään tuon alueen hautausmaista (löytyy seitsemän!) ja piirretään siitä vuorovaikutteinen kartta.

url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/hautausmaa/items?f=json&limit=500&bbox=29.870453,62.647023,31.014404,63.058071&api-key=", mml_api_key)
hautausmaa <- st_read(url)
Reading layer `OGRGeoJSON' from data source 
  `https://avoin-paikkatieto.maanmittauslaitos.fi/maastotiedot/features/v1/collections/hautausmaa/items?f=json&limit=500&bbox=29.870453,62.647023,31.014404,63.058071&api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789' 
  using driver `GeoJSON'
Simple feature collection with 7 features and 7 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 30.11115 ymin: 62.67023 xmax: 30.94426 ymax: 62.97602
Geodetic CRS:  WGS 84
mapview(hautausmaa)

Rakennukset

Palvelu tarjoaa OGC API Features -kyselyrajapinnan rakennuksien ja rakennuksen osien paikkatietokohteille, jotka on tallennettu Kansalliseen maastotietokannan (KMTK) rakennukset ja rakennelmat -teeman mukaiseen tietovarastoon. Aineisto tulee pääosin Maanmittauslaitoksen Maastotietokonnasta.

Listataan aluksi eri collectionit.

url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/buildings/features/v1/collections?api-key=", mml_api_key)
resp <- request(url) %>% 
  req_perform()
resp_list <- resp_body_json(resp)

collects <- resp_list$collections

ids <- collects |> modify(c("id")) %>% unlist()
link_list <- list()
for (i in 1:length(collects)) link_list[[i]] <- collects[[i]]$links[[1]]$href
tibble(id = ids, link = unlist(link_list)) %>% kable() %>% kable_styling()
id link
buildings_versions https://avoin-paikkatieto.maanmittauslaitos.fi/buildings/features/v1/collections/buildings_versions/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
building_parts_versions https://avoin-paikkatieto.maanmittauslaitos.fi/buildings/features/v1/collections/building_parts_versions/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
buildings https://avoin-paikkatieto.maanmittauslaitos.fi/buildings/features/v1/collections/buildings/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
building_parts https://avoin-paikkatieto.maanmittauslaitos.fi/buildings/features/v1/collections/building_parts/items?api-key=936f5fb4-ddbb-4a95-85bb-4b5ff7a19789
# tässä jotain vikaa, ei toimi!!
url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/buildings/features/v1/collections/building_parts/items?f=json&limit=500&api-key=", mml_api_key)
rakennukset <- st_read(url)
head(rakennukset)

Nimistö

Palvelussa on tarjolla paikka, paikannimi- ja karttanimitietoja.

url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/geographic-names/features/v1/collections?api-key=", mml_api_key)
resp <- request(url) %>% 
  req_perform()
resp_list <- resp_body_json(resp)

collects <- resp_list$collections

ids <- collects |> modify(c("id")) %>% unlist()
link_list <- list()
for (i in 1:length(collects)) link_list[[i]] <- collects[[i]]$links[[1]]$href
tibble(id = ids, link = unlist(link_list)) %>% kable() %>% kable_styling()

Sitten tehdään haku pelkästään tuon alueen nimistä

# Sama ongelma, ei toimi
url <- paste0("https://avoin-paikkatieto.maanmittauslaitos.fi/geographic-names/features/v1/collections/placenames/items?f=json&api-key=", mml_api_key)
nimet <- st_read(url)
head(nimet)

Uudelleenkäyttö

Viittaus

BibTeX-viittaus:
@online{kainu2023,
  author = {Kainu, Markus},
  title = {Tilastokeskuksen ja Maanmittauslaitoksen OCP API Features
    rajapintojen hyödyntäminen R-kielellä},
  date = {2023-01-25},
  url = {https://markuskainu.fi/posts/2023-01-25-ogc-api-perusteet},
  langid = {fi}
}
Viitatkaa tähän teokseen seuraavasti:
Kainu, Markus. 2023. “Tilastokeskuksen ja Maanmittauslaitoksen OCP API Features rajapintojen hyödyntäminen R-kielellä.” January 25, 2023. https://markuskainu.fi/posts/2023-01-25-ogc-api-perusteet.