Einingar MapConductor React SDK hafa verið uppfærðar. Af 21 pakka á npm hreyfðust 19. Flest er uppfærsla viðfanga, en tvær lagfæringar í kringum MapLibre snerta galla sem erfitt er að rekja þegar maður lendir í þeim.
Útgáfurnar eru ekki samstilltar. react-for-maplibre og react-for-openlayers eru á 0.2.2, react-icons og react-kml standa í stað, og afgangurinn er á 0.2.1. Við hættum við að setja allt á sömu tölu eins og í 0.2.0. Að hækka útgáfu pakka sem ekkert breyttist í segir notandanum ekki annað en „eitthvað breyttist“.
Kortið verður bara bakgrunnslitur — og engin villa birtist
Þetta er kjarninn í react-for-maplibre 0.2.2.
MapLibre GL JS v6 dreifir Web Worker sínum sem sérstakri skrá og setur slóð hennar saman út frá eigin import.meta.url. Fari kóðinn gegnum pakkara er þetta gildi fest við smíði (file://-slóð í Rspack, forpökkunarmappan í Vite), og skrá verkamannsins er hvergi gefin út, svo uppflettingin mistekst.
Það leiðinlega er að engin villa er kastað þótt þetta mistakist. Eitthvað á borð við new Worker("") verður til hljóðlaust, og allt stöðvast án þess að ein einasta flísabeiðni fari út. Á skjánum sést kort sem er ekkert nema bakgrunnslitur. Sjáir þú núll .pbf-beiðnir í netspjaldinu er þetta einkennið.
Í 0.2.2 fylgir pakkaði verkamaðurinn með pakkanum og er skráður sjálfkrafa um leið og fyrsta kortið verður til. Engar stillingar þarf. Það sama gildir í Vite og í webpack/Rspack, jafnt í þróun sem raunsmíði.
Ein undantekning er ef þú berð verkamanninn fram frá þinni eigin slóð (sameiginlegu CDN-i, eða smíð sem gefur hann þegar út). Kallaðu á setMapLibreWorkerUrl(url) áður en fyrsta kortið verður til; þá er pakkaða verkamanninum sleppt og hann er ekki einu sinni sóttur.
import { setMapLibreWorkerUrl } from '@mapconductor/react-for-maplibre';
setMapLibreWorkerUrl('https://cdn.example.com/maplibre-worker.mjs');Athugið að þróunarþjónn Vite keyrir pakkaða verkamanninn gegnum umbreytingaferlið sitt, svo /@vite/client er skotið inn og skráin bólgnar (úr um 478 KB í um 2,8 MB). Það lítur illa út en hefur engin áhrif á virkni, og í raunsmíði kemur hann út sem óbreytt gagnaskrá.
Að setja kóða verkamannsins í Blob-slóð virkar ekki í v6. Verkamaðurinn ræsist villulaust en aftur fer engin flísabeiðni út. Hann verður að berast fram sem raunveruleg skrá.
onMapLoaded ræsist aldrei
Einnig react-for-maplibre 0.2.2.
MapLibreProvider.initialize() bíður eftir map.once('load') áður en stýringin er búin til. Þegar stýringin verður til er hleðslunni því þegar lokið, og on('load') sem setupEventListeners setur upp ræsist aldrei.
Athugunin í smiðnum á því hvort frumstillingu væri lokið átti að grípa þetta, en virkaði ekki: bæði loaded() og isStyleLoaded() skila false rétt eftir hleðslu. Í MapLibre v6 kallar isStyleLoaded() á Style.loaded(), sem bíður eftir öllum tileManager-um.
Lagað í 0.2.2. Notaðirðu onMapLoaded hafði það aldrei verið kallað fram að þessu.
js-sdk-core 0.2.1 — Service Worker hrynur þegar táknategundirnar verða margar
Táknum merkjanna er komið til Service Worker-sins sem teiknar flísarnar á bitamyndaformi. Þau voru sótt eitt af öðru og send öll í lokin, svo ef fleiri táknategundir eru notaðar en skyndiminnið rúmar var búið að losa þau fyrstu þegar kom að því að senda. Að senda losaðan ImageBitmap gegnum structured clone kastar DataCloneError og fellir skráningu Service Worker-sins með sér.
Falli skráningin berst engin flís, svo einkennið er „kortið birtist ekki“. Og af því þetta kemur ekki fram fyrr en táknategundirnar fara fram úr stærð skyndiminnisins birtist það þannig að það sem virkaði á þróunarvélinni stöðvast í raunnotkun.
Lausnin var ekki að stækka skyndiminnið. Við skiptum eignarhaldinu — sendandinn heldur á sínu eigin afriti og losar aðeins það eftir að sendingu lýkur. Því sem skyndiminnið á er aldrei snert.
TomTom ber ekki lengur tvö eintök af MapLibre
Í 0.2.0 var react-for-tomtom einn skilinn eftir á maplibre-gl 5.x, af því @tomtom-org/maps-sdk reiddi sig á maplibre-gl@^5.24.0: að fara í 6.x setti tvö eintök af MapLibre inn og léti TomTom-SDK-ið fá kortahlut sem það gerir ekki ráð fyrir.
TomTom færði sig yfir á maplibre-gl@^6.4.0 í 0.51.5. react-for-tomtom 0.2.1 fylgir því og biður um ^6.6.0. Hann deilir nú sama MapLibre og react-for-maplibre og react-for-maptiler, og athugasemdin úr 0.2.0 á ekki lengur við.
Sem aukaafurð hleðst react-for-tomtom nú í ESM-leysara Node. Í 0.2.0 gerði hann það ekki, af því hann las maplibre-gl/package.json án innflutningseigindar. Þetta er staðfest með því að setja útgefnu pakkana í tómt verkefni.
import | require() | |
|---|---|---|
react-for-tomtom 0.2.0 | no | no |
react-for-tomtom 0.2.1 | yes | no |
require() gengur ekki af því maplibre-gl v6 er aðeins ESM og lýsir engum CommonJS-inngangi — sama ástæða og hjá react-for-maplibre og react-for-maptiler. Notaðu þessa þrjá sem ESM.
Fjórar 0.2.1-útgáfur innihalda engar breytingar
Í js-sdk-react, react-geojson, react-heatmap og react-marker-clustering er JavaScript-ið í 0.2.1 nákvæmlega það sama og í 0.2.0. Það eina sem hreyfðist voru smíðaskilgreiningarnar sem fylgja pökkunum, og vefsmíðin les þær ekki. Engin ástæða er til að flýta sér að uppfæra, en það skaðar ekki heldur.
Uppfærslur korta-SDK-anna
Fært í það nýjasta innan uppgefins sviðs. Þetta hreyfðist:
| Viðfang | 0.2.0 | Núna |
|---|---|---|
mapbox-gl | ^3.15.0 | ^3.29.0 |
maplibre-gl | ^6.0.0 | ^6.6.0 |
cesium | ^1.131.0 | ^1.144.0 |
ol | ^10.2.1 | ^10.10.0 |
@arcgis/core | ^5.1.16 | ^5.1.20 |
@tomtom-org/maps-sdk | ^0.51.0 | ^0.51.5 |
azure-maps-control | ^3.7.0 | ^3.7.4 |
@turf/turf | ^7.3.5 | ^7.4.0 |
Óbreytt standa leaflet ^1.9.4, @googlemaps/js-api-loader ^2.1.1 og mappls-web-maps ^3.8.1; ekkert hefur hreyfst hjá þeim uppstreymis. peerDependencies fyrir React eru áfram ^18.0.0 || ^19.0.0; það eina sem breyttist er útgáfan sem er notuð við þróun (19.2.7 → 19.2.8).
Pakkarnir og korta-SDK hvers þeirra
HERE, Apple MapKit JS og Longdo bera ekkert korta-SDK sem viðfang af því SDK-in eru ekki gefin út á npm. Þau hlaðast á keyrslutíma frá CDN framleiðandans, svo útgáfan sem raunverulega keyrir er sú sem framleiðandinn ber fram.
Að uppfæra
npm install @mapconductor/js-sdk-core@latest @mapconductor/js-sdk-react@latest \ @mapconductor/react-for-maplibre@latest
js-sdk-core fór líka í 0.2.1. Lagfæringin á Service Worker-num hér að ofan er í henni, svo notirðu margar táknategundir fyrir merki skaltu uppfæra hann.
Meðferð á ESM, CommonJS og teiknun á þjóni er óbreytt frá 0.2.0, að react-for-tomtom undanskildum hér að ofan. Yfirlit yfir hvaða pakkar hlaðast í leysara Node og hverjir ekki er í færslunni um React SDK 0.2.0. Hver pakki á sína eigin geymslu; sjá github.com/MapConductor.