Releasenotities Onemap versie 5.17.0
Beheer
Publiceren en opslaan
De knop 'Publiceren' is verdwenen. Voorheen moest je wijzigingen aan kaartlagen en kaartlaagonderdelen apart publiceren na opslaan. Na publiceren werden de wijzigingen pas zichtbaar in de themakaarten. Nu zijn wijzingen na 'Opslaan' direct zichtbaar in de themakaarten. Dit is gedaan omdat de scheiding Opslaan / Publiceren vaak voor verwarring zorgde.
Kaart delen
In beheer is de knop 'Kaart delen' toegevoegd. Bij een druk op de knop in de viewer wordt het huidige kaartbeeld opgeslagen en de gebruiker krijgt een link waarmee de kaart op een later moment weer geopend kan worden zoals die was op het moment dat de link werd aangemaakt. Deze zaken worden vastgelegd en opgeslagen:
- Wat er op dat moment ongeveer in beeld staat. Dit beeld kan iets anders zijn als je de link later op een scherm met een ander formaat opent. Bijvoorbeeld op een mobiel device.
- De kaartlagen die op dat moment aan of uit staan.
- Eventuele gemaakte schetsen op de kaart.
CQL Default Filters
Het instellen van een standaardfilter op een kaartlaag was enigszins beperkt, omdat je maar 1 waarde per veld kon opgeven. In v5.17 is er de mogelijkheid bijgekomen om een CQL filter op te geven als standaardfilter voor een kaartlaag. Een CQL filter is een stuk tekst waar op een eenvoudige manier een standaardfilter kan worden opgegeven. Een paar voorbeelden:
- boomsoort LIKE 'quercus%'
- datum_start during 2024-01-01 / 2024-31-12
- type_code IN (1,2,4) AND opmerking IS NOT NULL
De syntax kan hier worden nagekeken: ECQL reference.
Let op: niet alles wordt ondersteund: functions en op geometrie gebaseerde filters worden niet ondersteund. Net als het gebruik van EXISTS en INCLUDE.
In een CQL filter kunnen kaartparameters worden gebruikt. Een nieuw toegevoegde kaartparameter is {{ _params.current_date }}. Deze datum in combinatie met periodenotatie in CQL maakt het bijvoorbeeld mogelijk om een standaardfilter in te stellen zodat de kaartlaag alleen features toont met een datum die tussen nu en een week geleden ligt.
- datum DURING P1W / {{ _params.current_date }}
Nieuwe kaartparameters
De volgende kaartparameters zijn nu beschikbaar om te gebruiken in formulieren en/of feature info:
- {{ _params.current_date }}: de huidige datum als YYYY-MM-DD string.
- {{ _params.current_datetime }}: de huidige datum+tijd als YYYY-MM-DDThh:mm:ss+hh:mm string met tijdzone.
- {{ _params.username }}: de gebruikersnaam van de ingelogde gebruiker. Deze is null als de kaart door een niet-ingelogde gebruiker wordt bekeken.
Deze kaartparameters zijn beschikbaar binnen feature info templates:
- {{ _params.click_x }} en .click_y: de locatie die de gebruiker heeft aangeklikt om feature info op te vragen.
- {{ _params.click_lon }} en .click_lat: idem als hierboven, maar dan in CRS:84.
- {{ _params.center_x }} en .center_y: het middelpunt van de feature waarvan feature info is opgevraagd.
- {{ _params.center_lon }} en .center_lat: idem als hierboven, maar dan in CRS:84.
Formulieren
- Voor nieuw aangemaakte bewerkformulieren staan de opties 'Beschikbaar voor bulkedit' en 'Altijd overschrijven' nu standaard uit.
- Formuliervelden hebben nu een extra optie: 'Verborgen'. Vink deze optie aan om het veld niet te tonen in een formulier. Deze optie wordt doorgaans gebruikt in combinatie met een standaardwaarde die de gebruiker niet hoeft te zien, bijvoorbeeld {{ _params.usename }}.
- Wijzigingen aan de veldenlijst voor een formulier (en zoeken) van een kaartlaag worden niet meer meteen opgeslagen. Wijzigingen moeten nu met een knop 'Opslaan' worden opgeslagen. Wijzigingen kunnen ook worden geannuleerd.
- Het is nu mogelijk om een formulier van een kaartlaag te verwijderen.
- Als voor een bronloze laag handmatig velden zijn opgegeven, opent het formulierconfiguratiescherm nu standaard in eenvoudige modus in plaats van de advanced json teksteditor.
Verbeteringen overzichten en lijsten
- Het tabblad 'Details' van een API-configuratie in beheer bevat nu een lijst met kaartlagen die de API-koppeling gebruiken, inclusief links om direct naar de API-configuratie voor die kaartlaag te gaan.
- In de lijst met API-configuraties in beheer wordt de gebruikte url getoond.
- In de lijst met kaartlagen bij details van een kaartservice staat nu ook de layer name vermeld zoals die in de service wordt gebruikt.
- Bij het groepenbeheerscherm is een tabblad 'Niet-geregistreerde gebruikers' toegevoegd waar alle uitgenodigde gebruikers staan die het registratieproces nog niet hebben voltooid.
- Het is nu mogelijk om de volgorde van items in een domeinlijst achteraf aan te passen door te klikken en te slepen.
- Het gedrag van klikken en slepen van individuele items van lijsten in beheer is visueel duidelijker gemaakt.
Overige toevoegingen en verbeteringen
- Bij invoervelden gebruikt in 'Zoeken' is het nu ook mogelijk om een domeinlijst te kiezen in plaats van vrije invoer.
- Bij een filter in een kaart is het nu mogelijk om 'Enkelvoudig filter' te kiezen. Dit betekent dat er maar op 1 waarde tegelijk gefilterd kan worden. Als de gebuiker een andere waarde kiest, wordt de vorige filterwaarde vervangen.
- Bij feature info met API-koppeling(en) wordt de eerste API-koppeling direct geladen en getoond als de feature info template leeg is. Voorheen werd er helemaal niets getoond voor een feature omdat de feature info template leeg was.
- Bij de een API-configuratie in een kaartlaag is er nu de instelling 'Cache response'. Deze staat standaard aan en kan worden uitgezet. Als response caching uitstaat, wordt de API koppeling altijd opnieuw geladen voor een feature. Voorheen werd de API inhoud altijd onthouden bij eerder bezochte features.
- Het kaartje dat bij Instellingen / Algemeen wordt getoond is nu de kaart zelf in plaats van een generiek kaartje. Hierdoor is het makkelijker om de kaart-extents af te stemmen op kaartlagen die in de kaart zitten.
- Bij instellingen van 'Zoeken' in een kaart kan nu een maximum zoomniveau worden opgegeven om te voorkomen dat de viewer te ver inzoomt als het zoekresultaat een punt is.
- Bij het aanmaken van een nieuwe kaartlaag wordt de laatst gebruikte kaartservice alvast ingevuld.
- Om de onherroepelijkheid te benadrukken vereist het verwijderen van een kaart nu een dubbele bevestiging.
- Als bij een kaart extra informatie is opgegeven, kan de afmeting van de informatiepopup nu worden ingesteld. Als er geen hoogte is opgegeven, wordt de hoogte van de popup aangepast aan de hoogte van de inhoud (tot een maximumhoogte).
- De voorgebakken werkbalken in beheer zijn herzien en bevatten ook recent toegevoegde knoppen.
- Nieuwe knop voor de werkbalk: 'GPS-punt plaatsen'. Deze knop wordt actief als een edit-tekentool aan staat en de GPS knop actief is. Een druk op deze knop plaatst een punt op de huidige GPS-locatie alsof je op die plek op het scherm hebt getikt.
- Aan de lijst met kleuren in een thema zijn drie opties toegevoegd om de kleur van highlights in de kaart aan te passen:
- Selectie: de kleur die wordt gebruikt om geselecteerde objecten aan te duiden.
- Zoekresultaat: kleur die wordt gebruikt om een zoekresultaat (via zoekpaneel of adres zoeken) op de kaart te tonen.
- Actief: highlight die wordt gebruikt om bij feature info aan te geven van welk object de informatie wordt getoond.
- Er is een beschrijvende helptekst toegevoegd bij de optie 'Marker icon' voor de knoppen 'Open extensie' en 'Open extensie bij klik op te kaart'.
- Bij kaarservices is de optie 'Stuur origin header mee' toegevoegd. Vink deze aan als de kaartservice een whitelist hanteert op basis van url, zoals sommige MapTiler WMTS services.
- Bij de stijl van een (WMS-) kaartlaag kan nu worden aangevinkt dat de viewer altijd een GetLegendGraphic request moet doen, in plaats van de link naar de legenda-afbeelding te volgen.
- Broncode-editors hebben nu een grijze rand, waardoor het duidelijker is dat hier iets kan worden ingevuld.
- Op sommige plekken ontbrak de vertaling. Deze zijn nagelopen en aangevuld.
Opgeloste problemen
- Inloggen via (bijvoorbeeld) omgeving1.webgis.nl laat nu alleen zaken zien uit omgeving1, ook al heb je als beheerder toegang tot meerdere omgevingen.
- Als een workspace hoodfletters en/of spaties in de naam had, werkte het kopiëren van kaarten (Opslaan als) niet goed.
- Het tabblad 'Projectiestelsels' bij instellingen van een omgeving was alleen beschikbaar voor gebruikers met superadminrechten. Dit tabblad is nu beschikbaar voor iedereen met rechten om een omgeving te mogen beheren.
- Na het wijzigen van de breedte van een zijbalk werd de oude breedte nog getoond in beheer.
- Als je een map in portaal bewerkt, de popup sluit, en dan weer opent, zijn de gegevens niet meer leeg.
- Het is nu mogelijk om ongebruikte kaartlagen te verwijderen waarvoor ooit gebruiksgegevenslogging is aangezet.
- Het was in sommige gevallen niet mogelijk om een kaartlaag weg te gooien, ook al werd deze als 'niet in gebruik' gemarkeerd.
- Het gebruik van tabbladen in een feature info template ([[[Eigen tabtitel]]]) veroorzaakte soms crashes als de tab-indicator helemaal aan het begin van de feature info template stond, of als de tab geen inhoud had.
- Bij gebruik van 'Default Feature-info' in een feature info template werden de velden van een kaartlaag in omgekeerde volgorde in de template gezet.
- Bij integer formuliervelden werd altijd een standaardwaarde '0' getoond, ook al was deze niet ingevuld voor dat veld.
- De kaartinstelling 'Toon in app' werd niet doorgegeven in de lijst met themakaarten die via de API wordt opgevraagd.
- Bestaande Single Sign On (SSO) configuraties waren voor non-superadmin beheerders niet zichtbaar. Je kon ze wel toevoegen, maar vervolgens niet meer wijzigen.
- Bij het verwijderen van een in een SSO gebruikte groep werd de SSO configuratie zelf ook verwijderd.
- Als meerdere SSO-providers van het zelfde type (bijvoorbeeld Azure) zijn ingericht voor een omgeving, worden deze nu in een dropdown getoond in het inlogscherm.
- Het veld 'tenant id' wordt nu alleen getoond bij een Azure SSO-configuratie.
Viewer
Nieuw, aangepast en verbeterd
Filters
- Het zijbalkpaneel 'Actieve filters' bestaat nu niet meer. Filters die zijn gezet worden nu direct onder de bijbehorende filter-input getoond.
- Het is nu mogelijk om een filter te inverteren met de '!' knop die verschijnt zodra je een filter hebt ingevoerd.
- Filters kunnen nu per filter worden verwijderd. Voorheen was er een prullenbakknop in het actievefilterpaneel, maar deze verwijderde alle(!) filters tegelijk.
- De time slider widget laat nu de datum zien die is aangegeven met de schuifknoppen. Deze worden tijdens het slepen bijgewerkt.
- Door op de datumlabels van de time slider te klikken kunnen minimum-, maximum- en huidige datum met de hand worden ingevuld.
- De lijst met opties bij filter- en zoekvelden met een domeinlijst is aangepast. Je kan nu een stukje tekst typen om de getoonde opties te beperken. Alleen opties die het opgegeven tekstfragment bevatten worden getoond. Dit is voornamelijk handig bij lange lijsten.
Aanpassingen voor mobiele weergave
- Bij aanklikken van de GPS-locatieknop zoomt de kaart in. Voorheen werd de kaart alleen gecentreerd, wat niet heel handig was als je ver uitgezoomd bent.
- De weergave van de huidige GPS-locatie is aangepast. Het punt dat de locatie aanwijst is groter en duidelijker gemaakt, en de nauwkeurigheid van de plaatsbepaling wordt weergegeven als cirkel om het locatiepunt. De straal van de cirkel geeft de foutmarge in meters weer.
- Bij het sluiten van een werkbalk in de mobiele weergave, worden alle actieve knoppen in die werkbalk gedeactiveerd. Dit voorkomt de situatie waar (bijvoorbeeld) een tekenknop actief bleef terwijl de bewerkknoppenbalk al was dichtgeklapt.
Overige aanpassingen en verbeteringen
- Voorheen werd de volledige kaartlaag herladen na het opslaan van een wijziging. Nu wordt de wijziging direct toegepast op de kaart.
- In de tabelweergaven van laaggegevens is het downloaden vereenvoudigd. De optie 'Download als GeoJSON' is verplaatst. De knop 'Download selectie' opent nu een lijstje waar het formaat kan worden gekozen.
- Het is nu naast CSV en GeoJSON ook mogelijk om geselecteerde gegevens in de tabelweergave als Excel te downloaden. Deze optie is alleen beschikbaar voor kaarten waarvoor je moet inloggen.
- Als een laag wordt uitgezet in het lagenoverzicht, worden alle dashboardgrafieken gerelateerd aan die kaartlaag ook verborgen in de viewer.
- Als er een fout optrad bij opslaan van een WFST-kaartlaag werd er alleen 'WFST reponse error' getoond. Nu wordt meer informatie over de fout getoond als de kaartservice die teruggeeft.
- In het portaal wordt nu een tooltip met de volledige kaarttitel getoond als je met de muis over een te lange (en daardoor afgebroken) kaarttitel gaat.
- De widget 'Fullscreen' wordt nu getoond in de mobiele weergave.
- De Cyclomedia Street Smart integratie gebruikt nu versie 24.11 van de Street Smart API.
Opgeloste problemen
- Bewerkbare kaartlagen die als 'verborgen' zijn gemarkeerd in de kaartlagenlijst verschijnen nu niet meer in de keuzelijst met lagen om te bewerken.
- Het is nu mogelijk om pdf-afdrukken te maken vanuit publieke kaarten. Voorheen was dit alleen mogelijk bij kaarten waarvoor je moest inloggen.
- Na aanpassen/toevoegen van stijlen voor een kaartlaag in Geoserver, werden de oude stijlen nog steeds getoond in de keuzelijst in het laagcontextmenu.
- Een geoserver WMS-laag filteren met een 'IS NULL' filter mislukte. Dit gaat nu wel goed als in beheer voor de WMS het servertype handmatig op 'Geoserver' wordt gezet.
- De tooltip die de volledige naam van een kaartlaag toont werkt nu ook op kaartlaaggroepen in het laagoverzicht. Deze tooltip wordt alleen getoond als de laag- of groepnaam niet past en met ... wordt afgebroken.
- Labels boven staafgrafieken worden nu niet meer afgekapt aan de bovenkant.
- De aanwezigheid van 1 of meer kapotte kaartlagen (rood uitroepteken) in de kaart maakte het onmogelijk om schetsen te selecteren en/of te bufferen.
- Nieuwe objecten intekenen in een kaartlaag met multipart geometrietype (MultiPoint/-Line/-Polygon) was niet mogelijk. Een ingetekende geometrie wordt nu 'gewrapt' zodat deze overeenkomt met het opgegeven geometrietype van de laag.
- Als je het informatiescherm van een kaart opent in het kaartportaal terwijl de browser verder is uitgezoomd dan de standaard 100% kwam er een text box met een url links in beeld te staan.
- Als je een startschermkoppeling maakte van een kaart op een iPhone, werd als icoon de eerste letter van de kaart getoond. Nu wordt de koppeling als Onemap-icoon getoond.
Viewer API
!! Mogelijke breaking changes !!
Aanpassing styling top-level viewerelementen
Omdat de Onemap viewer niet goed werd weergegeven als deze in een flex- of grid-layout werd opgenomen, hebben de top-level elementen (class .om-root en .om-c-interaction) geen position: absolute meer.
Dit is mogelijk een breaking change voor embedded viewers, afhankelijk van de styling van het container div-element waarin de viewer wordt geïnitialiseerd.
Aanpassing matchcase-attribuut in filter
De property matchCase in OMFilter heet nu matchcase (helemaal lower case).Map mouseMove event
Voorheen werd het map.mouseMove event null als de muis de kaart verliet. Dit is niet meer zo. Nu is de .coordinate property van het event null als de muis de kaart verlaat.Deprecation
De method parameter sourceSrid in de addFeatures methods van vectorlagen en sketch controller heet nu srid, om deze gelijk te trekken met de andere Onemap API methods. Als je sourceSrid gebruikt, verschijnt er een waarschuwing in de console. In een volgende versie van de Onemap API wordt het gebruik van sourceSrid als parameternaam verwijderd.
Nieuw
- Vectorkaartlagen hebben nu een nieuwe method selectFeaturesWithFilter waarmee alle features worden geselecteerd die voldoen aan het opgegeven filter.
- Method map.createSnapshot toegevoegd om een snapshot te maken van het huidige kaarbeeld.
- Nieuwe optie snapshot voor initViewer, waarmee het kaartbeeld kan worden hersteld zoals in de snapshot die met createSnapshot is gemaakt.
- Operator propertyinlist toegevoegd als mogelijkheid voor OMFilter . Voorbeeld:
{ "type": "comparison", "operator": "propertyinlist", "propertyname": "value", "literals": [1, 2, 3] }
- Nieuwe utility method utils.parseCqlFilter om een CQL filter string (zie voor uitleg het begin van deze release notes) te vertalen naar een OMFilter object dat in verschillende Onemap API methods kan worden gebruikt. Voorbeeld:
api.utils.parseCqlFilter('datum DURING 2024-01-01 / 2024-31-12') ==> { "type": "comparison", "operator": "propertyisbetween", "propertyname": "datum", "lowerboundary": "2024-01-01", "upperboundary": "2024-31-12" }
- Optie zoomRadiusM toegevoegd aan map.setCenter. Hiermee kan je inzoomen tot ongeveer een cirkel met een opgegeven straal in meters rond het centrum.
-
Nieuwe options toegevoegd voor processTransaction.
De optie resumeOnTransactionError negeert fouten die optreden bij het verwerken van de transactie, waardoor wordt voorkomen dat er geen edit-transacties meer kunnen worden uitgevoerd.
De optie reloadAfterEdit kan op true worden gezet om na elke edit-transactie de hele kaartlaag te herladen.
- Nieuwe method featureInfo.setShowOnHoverInfo waarmee je voor een kaartlaag per feature kunt bepalen of on-hover info wel of niet moet worden getoond.
- De optie 'Box' toegevoegd aan sketch.start. Deze trekt een rechthoek tussen het eerst aangeklikte punt en de muispositie.
- De saveChanges functie die wordt doorgegeven als je het edit form zelf implementeert (via edit.setFormOverride) geeft nu een promise terug. Het then-gedeelte wordt aangeroepen bij succesvol verwerken van de transactie. Fouten die optreden bij het opslaan kunnen worden opgevangen in het catch-gedeelte.