เอกสาร / การตั้งค่า / React / Leaflet
การตั้งค่า Leaflet
ขั้นตอนการใช้ Leaflet บนเว็บผ่าน MapConductor ไม่จำเป็นต้องใช้คีย์ และเหมาะสำหรับเวลาที่ต้องการแสดงไทล์แรสเตอร์แบบเบาๆ
PACKAGE
react-for-leaflet
API KEY
ไม่จำเป็น
CSS
จำเป็น
3D CAMERA
เทียม
ก่อนเริ่ม
Node.js 18 ขึ้นไป
React 18 หรือ 19
STEP 01
ติดตั้ง
leaflet ถูกรวมอยู่ในแพ็กเกจ
terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-leafletSTEP 02
โหลดสไตล์ชีต
โหลดครั้งเดียวที่จุดเริ่มต้นของแอป หากลืม ตำแหน่งแผนที่และรูปลักษณ์ของตัวควบคุมจะเสียหาย
main.tsxTypeScript
import '@mapconductor/react-for-leaflet/style.css';
STEP 03
กำหนดแหล่งที่มาของไทล์
LeafletDesign.OpenStreetMap เริ่มต้นใช้ไทล์สาธารณะของ OpenStreetMap และมีการแสดงที่มาพร้อมด้วย
ข้อควรระวัง
เซิร์ฟเวอร์ไทล์สาธารณะของ OpenStreetMap มีนโยบายการใช้งาน หากส่งการรับส่งข้อมูลเพื่อการผลิต โปรดใช้การส่งมอบไทล์ของคุณเองหรือบริการเชิงพาณิชย์
ตรวจสอบ
สิ่งที่ควรเห็น
หากแผนที่ปรากฏขึ้น ถือว่าเสร็จสิ้น
LeafletMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { LeafletDesign, LeafletMapView, useLeafletMapViewState } from '@mapconductor/react-for-leaflet';
import '@mapconductor/react-for-leaflet/style.css';
const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });
export function LeafletMap() {
const state = useLeafletMapViewState({
mapDesignType: LeafletDesign.OpenStreetMap,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));
return (
<LeafletMapView state={state} style={{ height: 480 }}>
<Marker state={markerState} />
</LeafletMapView>
);
}ดีไซน์แผนที่
LeafletDesign เป็นค่าคงที่ที่ห่อหุ้มเทมเพลต URL ของไทล์ หากคุณใช้ไทล์ของคุณเอง ให้สร้างประเภทเดียวกัน
LeafletDesign
Notes
OpenStreetMap
ไทล์มาตรฐานของ OSM พร้อมการแสดงที่มา ซูมสูงสุด 19
None
ไม่มีสไตล์ฐาน เมื่อต้องการวาดเฉพาะซ้อนทับ
การแก้ปัญหา
การเอียงและการหมุนไม่ทำงาน
- Leaflet ไม่มีกล้อง 3D แบบเนทีฟ MapConductor ประมาณการเอียงและทิศทางด้วยการแปลง 3D ของ CSS นี่เป็นเพียงเอฟเฟกต์ภาพ ไม่ใช่กล้อง 3D จริง
ตำแหน่งแผนที่เสียหาย
- ตรวจสอบว่าได้โหลด style.css หรือไม่
แผนที่ถูกเริ่มต้นสองครั้งเฉพาะในระหว่างการพัฒนา
- React StrictMode ทำงานเอฟเฟกต์สองครั้ง ผู้ให้บริการแต่ละรายตรวจจับสิ่งนี้และทิ้งรายการหนึ่ง ดังนั้นคุณไม่จำเป็นต้องปิดใช้งาน StrictMode
ถัดไป
หากต้องการการแสดงผล 3D ให้พิจารณา MapLibre หรือ Cesium และหากต้องการจัดการการฉายภาพอย่างเคร่งครัด ให้พิจารณา OpenLayers