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

Apple MapKit का सेटअप

Web पर Apple MapKit JS को MapConductor से उपयोग करने के चरण हैं। iOS संस्करण के विपरीत, Apple द्वारा जारी JWT टोकन की आवश्यकता होती है।

PACKAGE
react-for-mapkit
API KEY
JWT टोकन
CSS
आवश्यक नहीं
REACT
19 या उच्चतर
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मiOS

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

Node.js 18 या उच्चतर, React 19 या उच्चतर
Apple Developer खाता और MapKit JS का Maps ID / निजी कुंजी
STEP 01

MapKit JS के लिए टोकन तैयार करें

Apple Developer पर Maps ID और निजी कुंजी बनाएं, और सर्वर पक्ष पर JWT पर हस्ताक्षर करके जारी करें। टोकन की समाप्ति अवधि होती है, इसलिए लंबे समय तक खुली रहने वाली स्क्रीन के लिए अद्यतन का तंत्र आवश्यक है।

सावधानी
निजी कुंजी को फ्रंटएंड पर न रखें। JWT हस्ताक्षर हमेशा सर्वर पक्ष पर किए जाने चाहिए।
STEP 02

स्थापित करें

MapKit JS Apple के CDN से पैकेज गतिशील रूप से लोड करता है। script टैग लिखने की आवश्यकता नहीं है।

terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
            @mapconductor/react-for-mapkit
STEP 03

टोकन को स्टेट हुक में पास करें

स्थिर टोकन पास करने के अलावा, टोकन की आपूर्ति और अद्यतन करने वाला कॉलबैक भी पास किया जा सकता है। दोनों निर्दिष्ट होने पर कॉलबैक को प्राथमिकता दी जाती है।

MapKitMap.tsxTypeScript · React
const state = useMapKitViewState({
  token: import.meta.env.VITE_MAPKIT_TOKEN ?? '',
  mapDesignType: MapKitMapDesign.Standard,
  cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});

जाँच

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

MapKit का मानचित्र दिखाई देने पर पूर्ण हो जाता है।

MapKitMap.tsxTypeScript · React
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 के मानचित्र प्रकार के अनुरूप होता है।

MapKitMapDesign
Notes
Standard
मानक सड़क मानचित्र
Satellite
उपग्रह चित्र
Hybrid
उपग्रह चित्र + सड़कें और लेबल
MutedStandard
डेटा वाले आधार मानचित्र के लिए
SatelliteFlyover / HybridFlyover
Flyover समर्थित क्षेत्रों के लिए

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

मानचित्र नहीं दिख रहा

  • जांचें कि टोकन खाली स्ट्रिंग तो नहीं है।
  • जांचें कि टोकन की समाप्ति तो नहीं हो गई है। लंबे समय तक खुली रहने वाली स्क्रीन में authorizationCallback से अद्यतन करें।

React 18 के साथ बिल्ड नहीं किया जा सकता

  • यह पैकेज केवल React 19 या उच्चतर की मांग करता है।

प्रदाता बदलने पर हुक क्रम त्रुटि आती है

  • React हुक कॉल क्रम नहीं बदल सकता। प्रत्येक प्रदाता के लिए एक छोटा घटक बनाएं, और उसी के अंदर उस प्रदाता के हुक को कॉल करें। नमूना ऐप का providers/ निर्देशिका इसी विन्यास का है।

आगे

iOS संस्करण का MapKit प्रदाता को न तो कुंजी और न ही आरंभीकरण की आवश्यकता होती है। वही स्क्रीन कोड के साथ, प्लेटफ़ॉर्म के अनुसार इसका उपयोग किया जा सकता है।