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

OpenLayers का सेटअप

वेब से MapConductor के माध्यम से OpenLayers का उपयोग करने की प्रक्रिया। इसके लिए कोई कुंजी की आवश्यकता नहीं है, और यह प्रक्षेपण विधियों या टाइल स्रोतों को बारीक रूप से नियंत्रित करने के लिए उपयुक्त है।

PACKAGE
react-for-openlayers
API KEY
अनावश्यक
CSS
आवश्यक
3D CAMERA
कृत्रिम

शुरू करने से पहले

Node.js 18 या इससे ऊपर
React 18 या 19
STEP 01

स्थापित करें

ol पैकेज में समाहित है।

terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
            @mapconductor/react-for-openlayers
STEP 02

स्टाइल शीट लोड करें

ऐप के एंट्री पॉइंट पर इसे केवल एक बार लोड करें। यदि आप भूल जाते हैं तो मानचित्र की स्थिति या नियंत्रण का स्वरूप बिगड़ जाएगा।

main.tsxTypeScript
import '@mapconductor/react-for-openlayers/style.css';
STEP 03

टाइल स्रोत तय करें

OpenLayersDesign OpenLayers के TileSource को लपेटने वाला एक कॉन्स्टेंट है। डिफ़ॉल्ट OpenStreetMap ol के OSM स्रोत का उपयोग करता है और इसमें एट्रिब्यूशन भी होता है।

सावधानी
OpenStreetMap के सार्वजनिक टाइल सर्वर में एक उपयोग नीति है। यदि आप प्रोडक्शन ट्रैफ़िक भेज रहे हैं, तो कृपया अपना खुद का टाइल वितरण या कोई वाणिज्यिक सेवा का उपयोग करें।

जाँच

आपको क्या दिखना चाहिए

मानचित्र प्रदर्शित होने पर पूर्ण हो गया।

OpenLayersMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { OpenLayersDesign, OpenLayersMapView, useOpenLayersMapViewState } from '@mapconductor/react-for-openlayers';
import '@mapconductor/react-for-openlayers/style.css';

const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });

export function OpenLayersMap() {
  const state = useOpenLayersMapViewState({
    mapDesignType: OpenLayersDesign.OpenStreetMap,
    cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
  });
  const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));

  return (
    <OpenLayersMapView state={state} style={{ height: 480 }}>
      <Marker state={markerState} />
    </OpenLayersMapView>
  );
}

मैप डिज़ाइन

OpenLayersDesign ol के TileSource को लपेटने वाला एक कॉन्स्टेंट है।

OpenLayersDesign
Notes
OpenStreetMap
ol का OSM स्रोत। एट्रिब्यूशन सहित
None
बेस स्टाइल नहीं

समस्या निवारण

झुकाव या घुमाव काम नहीं करता

  • OpenLayers में कोई नेटिव 3D कैमरा नहीं है। MapConductor CSS 3D ट्रांसफ़ॉर्मेशन का उपयोग करके tilt और bearing का अनुमान लगाता है। यह केवल दृश्य प्रभाव है।

मानचित्र की स्थिति बिगड़ जाती है

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

केवल विकास के समय मानचित्र दो बार प्रारंभ होता है

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

आगे

जब आपको OpenLayers की नेटिव कार्यक्षमता की आवश्यकता हो, तो आप MapViewHolder से ol के Map इंस्टेंस को निकालकर सीधे हेरफेर कर सकते हैं।