Uppsetning á MapLibre
Hvernig nota má MapLibre á vefnum gegnum MapConductor — enginn lykill, stysta leiðin að virku korti. maplibre-gl fylgir pakkanum.
Áður en þú byrjar
Settu upp
maplibre-gl fylgir pakkanum — engin sérstök uppsetning.
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-maplibreUndanskildu það forpökkun Vite
Í Vite skaltu bæta þjónustuaðilanum við optimizeDeps.exclude. maplibre-gl v6 hleður verkamanni sínum eftir vefslóð, og forpökkunin skilar þeirri skrá ekki inn í .vite/deps, svo beiðnin misheppnast.
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
optimizeDeps: {
exclude: ["@mapconductor/react-for-maplibre", "@mapconductor/js-sdk-core"],
},
plugins: [react()],
});Fluttu inn stílblaðið
Fluttu hana inn einu sinni úr inngangsskrá forritsins. Gleymist það kemur umbrot kortsins og stýringar rangt út.
import '@mapconductor/react-for-maplibre/style.css';
Veldu stíl
MapLibre hefur engan lykil, en þú velur hvaðan flísarnar koma. Sjálfgefna DemoTiles er til prófunar.
STAÐFESTA
Það sem þú ættir að sjá
Kort miðað á Tókýó með einu merki þýðir að þú ert búin/n.
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { MapLibreDesign, MapLibreMapView2D, useMapLibreViewState } from '@mapconductor/react-for-maplibre';
import '@mapconductor/react-for-maplibre/style.css';
const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });
export function HelloMap() {
const mapState = useMapLibreViewState({
id: 'maplibre-map',
mapDesignType: MapLibreDesign.DemoTiles,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));
return (
<MapLibreMapView2D state={mapState} style={{ height: 480 }}>
<Marker state={markerState} />
</MapLibreMapView2D>
);
}Stöðuhlutur
Það sem useMapLibreViewState tekur við. MapLibreMapView er þrívíða sýnin og MapLibreMapView2D sú tvívíða; þær deila stöðunni.
useMapLibreViewState({
id?: string;
mapDesignType?: MapLibreMapDesignType; // default MapLibreDesign.OsmBright
cameraPosition?: MapCameraPosition; // default MapCameraPosition.Default
})
// View props, on top of the shared MapViewBaseProps
{
maxZoom?: number;
minZoom?: number;
projection?: 'mercator' | 'globe'; // a component prop, not part of state
containerStyle?: React.CSSProperties;
markerTilingOptions?: MarkerTilingOptions;
onError?: (error: Error) => void;
}Kortahönnun
Hvert MapLibreDesign vefur vefslóð á stíl-JSON.
Bilanaleit
Kortið verður autt andartak þegar stílnum er breytt
- Að breyta mapDesignType frumstillir kortið upp á nýtt fremur en að kalla á setStyle — stílskipti eru ekki ódýr. Forðastu viðmót sem víxlar þeim í sífellu.
Umbrot kortsins eða stýringar líta brotnar út
- Athugaðu að þú hafir flutt inn style.css.
Kortið frumstillist tvisvar í þróun
- React StrictMode keyrir effect tvisvar. Hver þjónustuaðili greinir það og hendir keyrslunni sem var hætt við, svo þú þarft ekki að slökkva á StrictMode.
Næst
Sendu projection="globe" fyrir hnattsýn. Þetta er eigind einingarinnar, ekki hluti af stöðuhlutnum.