[Oskari-user] WMS image ja rpc-rajapinta

Mäkinen Erno T erno.makinen at tampere.fi
Fri Mar 26 13:29:43 PDT 2021


Moi,

Minullakaan ei toiminut eilen tuo RPC-esimerkkisivu (https://www.oskari.org/examples/rpc-api/rpc_example.html#/), mutta nyt toimii ainakin minulla olevan Chrome-selaimen kautta.

Ainakin yksi tapa hyödyntää WMS-rajapintoja Oskarin RPC-metodien kautta on:

  1.  Julkaista halutut WMS-tasot Oskarin karttajulkaisun kautta eli siis Oskarin karttapalvelun käyttöliittymässä kohdassa (tasot voi tässä kohtaa myös asettaa oletuksena olevan piilossa):
[cid:image002.jpg at 01D7228F.830612C0]
  2.  Sitten sivulla, johon karttajulkaisu on lisätty voi Javascript-koodissa tasoja tuoda kartalle näkyviin ja piilottaa MapLayerVisibilityRequest-metodilla<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/MapModulePlugin.MapLayerVisibilityRequest.md> sekä säätää niiden läpinäkyvyyttä ChangeMapLayerOpacityRequest-metodilla<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/changemaplayeropacityrequest.md>. Jotta näitä metodeita voi kutsua pitää olla tiedossa karttatason nimeä vastaava id, jonka saa selville getAllLayers-funktiolla<https://oskari.org/api/bundles#2.1.0/framework/rpc>. Näistä on esimerkki tuolla RPC-esimerkkisivulla Map | Map Layers -kohdassa<https://www.oskari.org/examples/rpc-api/rpc_example.html#/MapLayers>. Siltä varalta, että ko. esimerkkisivu ei jostakin syystä taas toimi, niin liitän tähän kuvan kaappauksen ja koodia ko. esimerkkisivulta:
[cid:image005.png at 01D7228F.830612C0]
Tuohon karttaupotukseen on siis julkaistu Oskarin käyttöliittymästä kaksi karttatasoa (mahdollisesti WMS-tasoja), sivun keskellä on esimerkit em. mainituista metodien kutsuista ja funktiosta sekä painikkeet, joilla voi kokeilla ko. toiminnallisuutta esimerkkikartan kanssa ja sivun oikealle puolella on loki painikkeiden käytöstä ja muusta karttainteraktiosta ja tapahtumista. Alimpana lokissa on GetAllLayers-funktion palauttama data (joka siis seurausta ”Show layers in log”-painikkeen painamisesta, keskellä lokia on kaksi loki merkintää ”toggle visibilty”-painikkeen kahdesta painamisesta eli siis parametreista, jotka on annettu tuon MapLayerVisibilityRequest-metodin parametrina ja ylimpänä lokissa on ”toggle opacity”-painikkeen painamisesta seuranneen ChangeMapLayerOpacityRequest-metodin kutsuun annetut parametrit.

Tässä siis vielä nuo koodit esimerkkisivulta:
channel.getAllLayers(function (data) {
    channel.log('GetAllLayers:', data);
});

channel.getAllLayers(function (layers) {
    // get the bottom layer
    var layerId = layers[0].id;
    var currentOpacity = layers[0].opacity;
    var newOpacity = currentOpacity !== 100 ? 100 : 50;
    channel.postRequest('ChangeMapLayerOpacityRequest', [layerId, newOpacity]);
});

channel.getAllLayers(function (layers) {
    // get the bottom layer
    const layerId = layers[0].id;
    const currentVisibility = layers[0].visible;
    channel.postRequest('MapModulePlugin.MapLayerVisibilityRequest', [layerId, !currentVisibility]);
});

Jos haluat lisää koodiesimerkkejä WMS-rajapinnan ja muutenkin Oskarin RPC-rajapinnan käytöstä, niin osoitteesta https://kartat.tampere.fi/leikkipaikkakysely/index.js löytyy leikkipaikkakysely-sovelluksen<https://kartat.tampere.fi/leikkipaikkakysely/> javascript-koodi, mutta ko. koodin kirjoittajana tunnustan, että ko. koodi ei ole kyllä erityisen luettavaa…

T. Erno


Lähettäjä: Puikkonen Klaus (Ruoka) <ext.klaus.puikkonen at ruokavirasto.fi>
Lähetetty: perjantai, 26. maaliskuuta 2021 8:31
Vastaanottaja: Mäkinen Erno T <erno.makinen at tampere.fi>; Oskari-user at lists.osgeo.org
Aihe: Re: WMS image ja rpc-rajapinta

Hei,

Ei kyllä valitettavasti taida toimia tai en ainakaan saanut tuolla AddFeaturesToMapRequest<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/addfeaturestomaprequest.md> sitä toimimaan, mutta kiitokset (kokeilin myös AddMarkerRequest<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/addmarkerrequest.md>, sillä saa piirrettyä, mutta ei taida tähän tarkoitukseen kyllä sopia).

    const featureStyle = {
      image: {
        shape: 'https://kartat.tampere.fi/leikkipaikkakysely/img/Tamperelainen_luonto_kohde.png',
      },
    };

Nyt lähinnä kyselisin ylipäätään tukeeko Oskarin rpc-rajapinta wms:ää, tai kuvien piirtämistä kartalle. Eli kannattaako tätä enempää selvitellä ja yritellään pärjäillä muilla vektorin piirtämisillä, esim WFS:n kautta.
Dokumentaatiosta löytyy kyllä maininta WMS:stä: https://www.oskari.org/documentation/data/maplayer-definitions, mutta esimerkkejä ei oikein löydy.

ps. Tuo esimerkki sivusto on tainnut mennä rikki: https://www.oskari.org/examples/rpc-api/rpc_example.html

-klasu

From: "Puikkonen Klaus (Ruoka)" <ext.klaus.puikkonen at ruokavirasto.fi<mailto:ext.klaus.puikkonen at ruokavirasto.fi>>
Date: Thursday 25. March 2021 at 13.03
To: Mäkinen Erno T <erno.makinen at tampere.fi<mailto:erno.makinen at tampere.fi>>, "Oskari-user at lists.osgeo.org<mailto:Oskari-user at lists.osgeo.org>" <Oskari-user at lists.osgeo.org<mailto:Oskari-user at lists.osgeo.org>>
Subject: Re: WMS image ja rpc-rajapinta

Hei,

Kiitokset! Kokeilen

-klasu

From: Mäkinen Erno T <erno.makinen at tampere.fi<mailto:erno.makinen at tampere.fi>>
Date: Thursday 25. March 2021 at 12.55
To: "Puikkonen Klaus (Ruoka)" <ext.klaus.puikkonen at ruokavirasto.fi<mailto:ext.klaus.puikkonen at ruokavirasto.fi>>, "Oskari-user at lists.osgeo.org<mailto:Oskari-user at lists.osgeo.org>" <Oskari-user at lists.osgeo.org<mailto:Oskari-user at lists.osgeo.org>>
Subject: VS: WMS image ja rpc-rajapinta

Moi vielä,

Ja tietenkin laitoin epähuomiossa tuohon esimerkkiin png-kuvan URL:n, joka ei toimi. Kannattaa siis käyttää jotakin toista kuvaa kuten https://kartat.tampere.fi/leikkipaikkakysely/img/Tamperelainen_luonto_kohde.png.

T. Erno

Lähettäjä: Mäkinen Erno T
Lähetetty: torstai, 25. maaliskuuta 2021 12:48
Vastaanottaja: Puikkonen Klaus (Ruoka) <ext.klaus.puikkonen at ruokavirasto.fi<mailto:ext.klaus.puikkonen at ruokavirasto.fi>>; Oskari-user at lists.osgeo.org<mailto:Oskari-user at lists.osgeo.org>
Aihe: VS: WMS image ja rpc-rajapinta

Moi,

AddFeaturesToMapRequest<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/addfeaturestomaprequest.md> (ja mahdollisesti AddMarkerRequest<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/addmarkerrequest.md>) RPC-kutsulla saattaisi dokumentaation mukaan olla mielestäni mahdollista. Itse olen lisännyt kartalle graafikon tekemiä suoraan json-koodissa olevia svg-kuvia ilman ongelmia tuon AddFeaturesToMapRequest<https://oskari.org/api/requests#unreleased/mapping/mapmodule/request/addfeaturestomaprequest.md>-metodin avulla (ja hämärä muistikuva on, että olisin joskus käyttänyt myös AddMarkerRequest-metodia). Oskarin tyylimäärittelyssä<https://oskari.org/documentation/examples/oskari-style> on image-ominaisuuden aliominaisuutena shape-ominaisuus, jonka kommenttina, että ” 0-6 for default markers. svg or external icon path”.

Eli siis AddFeaturesToMapRequest-metodin kutsussa olen optionseihin featureStyle-attribuutille antanut arvon { 'image': { 'shape': '<svg version="1.1" id="Layer_1" ... </g> </svg>', <mahd. muita attribuutteja kuten sizePx>' } }. Mahdollisesti siis tuohon featureStyle-kohtaan voi antaa parametriksi vaikkapa URL-osoitteen png-kuvaan eli esim.
{ "image":
          {
          "shape": 'https://kartat.tampere.fi/kkpkysely/img/kartta/Tarkea_kohtaamispaikka.png"
          }
}

T. Erno

Lähettäjä: Oskari-user <oskari-user-bounces at lists.osgeo.org<mailto:oskari-user-bounces at lists.osgeo.org>> Puolesta Puikkonen Klaus (Ruoka)
Lähetetty: torstai, 25. maaliskuuta 2021 11:59
Vastaanottaja: Oskari-user at lists.osgeo.org<mailto:Oskari-user at lists.osgeo.org>
Aihe: [Markkinointiviesti] [Oskari-user] WMS image ja rpc-rajapinta

Hei,

Käytetään täällä Ruokavirastolla Oskarin rpc-rajapintaa ja nyt pitäisi saada riista aitoja piirreltyä hkp:n kartalle, nämä tulevat png imageina. WFS-haku onnistuu ja saa piirrettyä, ne kun palauttaa noita polygoneja. Olen yrittänyt ohjeita kaivella ja googlettaa ja kokeilla, muttan en nyt keksi kuinka tuo toteutettaisiin ja onko mahdollista? Nuo on tavalla tai toisella sinne saatava, tarvittaessa jonkun muun karttapalvelun kautta sitten. Oskari on mainio, joten ei olisi ollenkaan haluja korvata sitä. Kirjoitan nyt tännekin, kun tuota tutkin, toivottavasti ei pahasti väärä osoite.

-klasu




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/oskari-user/attachments/20210326/d9abb989/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 38051 bytes
Desc: image002.jpg
URL: <http://lists.osgeo.org/pipermail/oskari-user/attachments/20210326/d9abb989/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.png
Type: image/png
Size: 380127 bytes
Desc: image005.png
URL: <http://lists.osgeo.org/pipermail/oskari-user/attachments/20210326/d9abb989/attachment-0001.png>


More information about the Oskari-user mailing list