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