Apple MapKit का सेटअप
Web पर Apple MapKit JS को MapConductor से उपयोग करने के चरण हैं। iOS संस्करण के विपरीत, Apple द्वारा जारी JWT टोकन की आवश्यकता होती है।
शुरू करने से पहले
MapKit JS के लिए टोकन तैयार करें
Apple Developer पर Maps ID और निजी कुंजी बनाएं, और सर्वर पक्ष पर JWT पर हस्ताक्षर करके जारी करें। टोकन की समाप्ति अवधि होती है, इसलिए लंबे समय तक खुली रहने वाली स्क्रीन के लिए अद्यतन का तंत्र आवश्यक है।
स्थापित करें
MapKit JS Apple के CDN से पैकेज गतिशील रूप से लोड करता है। script टैग लिखने की आवश्यकता नहीं है।
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-mapkitटोकन को स्टेट हुक में पास करें
स्थिर टोकन पास करने के अलावा, टोकन की आपूर्ति और अद्यतन करने वाला कॉलबैक भी पास किया जा सकता है। दोनों निर्दिष्ट होने पर कॉलबैक को प्राथमिकता दी जाती है।
const state = useMapKitViewState({
token: import.meta.env.VITE_MAPKIT_TOKEN ?? '',
mapDesignType: MapKitMapDesign.Standard,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});जाँच
आपको क्या दिखना चाहिए
MapKit का मानचित्र दिखाई देने पर पूर्ण हो जाता है।
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { MapKitMapDesign, MapKitMapView, useMapKitViewState } from '@mapconductor/react-for-mapkit';
const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });
export function MapKitMap() {
const state = useMapKitViewState({
token: import.meta.env.VITE_MAPKIT_TOKEN ?? '',
mapDesignType: MapKitMapDesign.Standard,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));
return (
<MapKitMapView state={state} style={{ height: 480 }}>
<Marker state={markerState} />
</MapKitMapView>
);
}मैप डिज़ाइन
MapKitMapDesign MapKit के मानचित्र प्रकार के अनुरूप होता है।
समस्या निवारण
मानचित्र नहीं दिख रहा
- जांचें कि टोकन खाली स्ट्रिंग तो नहीं है।
- जांचें कि टोकन की समाप्ति तो नहीं हो गई है। लंबे समय तक खुली रहने वाली स्क्रीन में authorizationCallback से अद्यतन करें।
React 18 के साथ बिल्ड नहीं किया जा सकता
- यह पैकेज केवल React 19 या उच्चतर की मांग करता है।
प्रदाता बदलने पर हुक क्रम त्रुटि आती है
- React हुक कॉल क्रम नहीं बदल सकता। प्रत्येक प्रदाता के लिए एक छोटा घटक बनाएं, और उसी के अंदर उस प्रदाता के हुक को कॉल करें। नमूना ऐप का providers/ निर्देशिका इसी विन्यास का है।
आगे
iOS संस्करण का MapKit प्रदाता को न तो कुंजी और न ही आरंभीकरण की आवश्यकता होती है। वही स्क्रीन कोड के साथ, प्लेटफ़ॉर्म के अनुसार इसका उपयोग किया जा सकता है।