दस्तावेज़ / सेटअप / React / Leaflet

Leaflet का सेटअप

MapConductor से Leaflet को Web पर उपयोग करने की प्रक्रिया है। कुंजी की आवश्यकता नहीं है, और यह रास्टर टाइल्स को हल्के ढंग से प्रदर्शित करने के लिए उपयुक्त है।

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-leaflet
STEP 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 tilt और bearing को CSS 3D रूपांतरण के माध्यम से अनुमानित करता है। यह केवल दृश्य प्रभाव है, वास्तविक 3D कैमरा नहीं है।

नक्शे की स्थिति बिगड़ जाती है

  • जांचें कि क्या आपने style.css लोड किया है।

केवल विकास के दौरान नक्शा दोहराकर प्रारंभ होता है

  • React StrictMode effect को दो बार निष्पादित करता है। प्रत्येक प्रदाता इसका पता लगाता है और एक को छोड़ देता है, इसलिए आपको StrictMode हटाने की आवश्यकता नहीं है।

आगे

यदि 3D प्रदर्शन की आवश्यकता है, तो MapLibre या Cesium पर विचार करें, और यदि आप प्रोजेक्शन विधि को सख्ती से संभालना चाहते हैं, तो OpenLayers पर विचार करें।