MapConductor React SDK Samples

डाकघरों की क्लस्टरिंग | MapLibre | MapConductor React SDK

MapLibre पर MapConductor React SDK का डाकघरों की क्लस्टरिंग सैंपल।

यह इंटरैक्टिव उदाहरण MapLibre पर MapConductor की एब्स्ट्रैक्शन के ज़रिए डाकघरों की क्लस्टरिंग दिखाता है।

कोड उदाहरण

import { useMemo, useState } from 'react';
import {
  MarkerTilingOptions,
  createGeoPoint,
  createMapCameraPosition,
  createMarkerState,
  type MarkerState,
} from '@mapconductor/js-sdk-core';
import { MapLibreDesign, MapLibreMapView2D, useMapLibreViewState } from '@mapconductor/react-for-maplibre';
import { MarkerClusterGroup } from '@mapconductor/react-marker-clustering';


// (1) मैप बनाएँ


const initialCamera = createMapCameraPosition({
  position: createGeoPoint({ latitude: 35.6812, longitude: 139.7671 }),
  zoom: 12,
});


const mapViewState = useMapLibreViewState({
  mapDesignType: MapLibreDesign.OsmBrightJa,
  cameraPosition: initialCamera,
});


// (2) डेटा और इंटरैक्शन स्टेट तैयार करें
const [selected, setSelected] = useState<MarkerState | null>(null);
const postOfficeMarkers = useMemo(() => postOffices.map(office => createMarkerState({
  id: office.id,
  position: createGeoPoint({ latitude: office.lat, longitude: office.lng }),
  extra: office,
  onClick: markerState => setSelected(markerState),
})), [postOffices]);
const markerTilingOptions = {
  ...MarkerTilingOptions.Default,
  iconScaleCallback: (_state: MarkerState, zoom: number) =>
    zoom > 10 ? 0.8 : zoom > 5 ? 0.5 : 0.2,
};


// (3) मैप और उसके ओवरले रेंडर करें


<MapLibreMapView2D state={mapViewState}>
  <MarkerClusterGroup
    markers={postOfficeMarkers}
    clusterIconProvider={clusterIconProvider}
    onClusterClick={zoomToCluster}
    minClusterSize={3}
    clusterRadiusPx={80}
  />
</MapLibreMapView2D>

कोड कैसे काम करता है

बहुत सारे मार्कर का क्लस्टर बनाएँ, और एक्सटेंशन API से अपना क्लस्टर आइकन तथा क्लिक व्यवहार दें।

वही postOfficeMarkers सरणी <Markers> की जगह MarkerClusterGroup को दी जाती है, इसलिए ज़ूम आउट करते ही पास-पास के डाकघर अपने आप समूह बन जाते हैं।

clusterIconProvider क्लस्टर का बैज खींचता है, onClusterClick zoomToCluster चलाकर समूह खोलता है, और minClusterSize तथा clusterRadiusPx तय करते हैं कि बिंदु कितनी सख़्ती से जुड़ें।