Leaflet का सेटअप
MapConductor से Leaflet को Web पर उपयोग करने की प्रक्रिया है। कुंजी की आवश्यकता नहीं है, और यह रास्टर टाइल्स को हल्के ढंग से प्रदर्शित करने के लिए उपयुक्त है।
शुरू करने से पहले
इंस्टॉल करें
leaflet पैकेज में शामिल है।
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-leafletस्टाइल शीट लोड करें
ऐप के एंट्री पॉइंट पर केवल एक बार इसे लोड करें। यदि आप इसे भूल जाते हैं, तो नक्शे की स्थिति और नियंत्रण का स्वरूप बिगड़ जाएगा।
import '@mapconductor/react-for-leaflet/style.css';
टाइल के स्रोत का निर्धारण करें
डिफ़ॉल्ट LeafletDesign.OpenStreetMap OpenStreetMap के सार्वजनिक टाइल्स का उपयोग करता है और साथ ही एट्रिब्यूशन भी प्रदर्शित करता है।
जाँच
आपको क्या दिखना चाहिए
नक्शा दिखाई देने पर पूर्ण हो जाता है।
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 टेम्पलेट को लपेटता है। यदि आप अपने स्वयं के टाइल्स का उपयोग कर रहे हैं, तो आप उसी प्रकार को बनाते हैं।
समस्या निवारण
झुकाव और घुमाव काम नहीं करते
- Leaflet में कोई नेटिव 3D कैमरा नहीं है। MapConductor tilt और bearing को CSS 3D रूपांतरण के माध्यम से अनुमानित करता है। यह केवल दृश्य प्रभाव है, वास्तविक 3D कैमरा नहीं है।
नक्शे की स्थिति बिगड़ जाती है
- जांचें कि क्या आपने style.css लोड किया है।
केवल विकास के दौरान नक्शा दोहराकर प्रारंभ होता है
- React StrictMode effect को दो बार निष्पादित करता है। प्रत्येक प्रदाता इसका पता लगाता है और एक को छोड़ देता है, इसलिए आपको StrictMode हटाने की आवश्यकता नहीं है।
आगे
यदि 3D प्रदर्शन की आवश्यकता है, तो MapLibre या Cesium पर विचार करें, और यदि आप प्रोजेक्शन विधि को सख्ती से संभालना चाहते हैं, तो OpenLayers पर विचार करें।