दस्तावेज़ / बुनियादी / मार्कर

मार्कर

मार्कर बनाने के लिए बस एक स्टेट ऑब्जेक्ट बनाकर मैप व्यू पर रखें। रेंडरिंग SDK के आंतरिक रेंडरिंग इंजन द्वारा किया जाता है, जो संख्या के अनुसार स्वचालित रूप से तरीका बदलता है। डिफ़ॉल्ट रूप से 2,000 तक प्रत्येक मैप SDK के मानक मार्कर हैं, और उससे अधिक होने पर रास्टर टाइल हैं। यह मानक मैप व्यू में टाइल रेंडरिंग विकल्प पास करके बदला जा सकता है।

ANDROID
com.mapconductor:core
iOS
MapConductorCore
REACT
@mapconductor/js-sdk-react
प्लेटफ़ॉर्म

01 · मार्कर की स्थिति

MarkerState एक मार्कर का प्रतिनिधित्व करता है। इसमें स्थिति, आइकन, इवेंट, और मनमाना संबद्ध डेटा होता है, और प्रॉपर्टी को फिर से लिखने पर तुरंत परिलक्षित होता है। प्रदाता-विशिष्ट प्रकार नहीं हैं।

MarkerState · Jetpack Compose
val marker =
    MarkerState(
        position = GeoPoint.fromLatLong(21.3069, -157.8583),
        icon = DefaultMarkerIcon(fillColor = Color.Red, label = "A"),
        extra = postOffice,
        onClick = { clicked -> viewModel.onMarkerClick(clicked) },
    )

// Assigning to a property is all it takes to redraw
marker.position = nextPoint
प्रॉपर्टी
विवरण
position
अक्षांश और देशांतर। फिर से लिखने पर मार्कर चलता है।
icon
आइकन। निर्दिष्ट नहीं होने पर डिफ़ॉल्ट पिन।
extra
मनमाना संबद्ध डेटा। क्लिक करने पर प्राप्त करके सूचना बुलबुला आदि में उपयोग करते हैं।
clickable / draggable
टैप और ड्रैग की संभावना।
zIndex
ओवरलैप क्रम। मार्कर व्यक्तिगत डिफ़ॉल्ट तीनों प्लेटफ़ॉर्म पर अनसेट (null) है, और अनसेट होने पर अक्षांश के क्रम में स्वचालित रूप से ओवरलैप होते हैं। मार्कर लेयर को समग्र रूप से 10 पर रखा जाता है।
onClick / onDrag…
टैप, ड्रैग, एनीमेशन शुरू और समाप्त हैंडलर।

02 · आइकन

डिफ़ॉल्ट पिन पर रंग और लेबल लगाने की विनिर्देश से लेकर छवि, कैनवास, और बुलबुला प्रकार के आइकन तक तैयार हैं। कोई भी आइकन प्रदाताओं के पार एक ही दिखता है।

03 · आंतरिक रेंडरिंग इंजन

मार्कर रेंडरिंग SDK के आंतरिक रेंडरिंग इंजन पर छोड़ दी गई है। जब संख्या कम होती है, तो प्रत्येक मैप SDK के मानक मार्कर का उपयोग किया जाता है, और मूल टैप निर्धारण और एनीमेशन का लाभ उठाया जाता है।

मार्कर 2,000 से अधिक होने पर, इंजन रेंडरिंग तरीका बदलता है। मार्कर समूह को टाइल छवि के रूप में रेंडर करके, एक रास्टर लेयर के रूप में ओवरले करके, मूल SDK में एक-एक जोड़ने और अपडेट करने की लागत समाप्त हो जाती है। ऐप ओर कोई बदलाव नहीं होता है।

आकृति · संख्या के अनुसार रेंडरिंग तरीका बदलता है
≤ 2,000

नेटिव मार्कर

हर स्टेट के लिए एक नेटिव मार्कर। टैप, ड्रैग और एनिमेशन ठीक वैसे ही चलते हैं जैसे प्लेटफ़ॉर्म पर चलते हैं।
2,000+
> 2,000

रास्टर टाइल

मार्कर टाइल में खींचे जाते हैं और रास्टर लेयर की तरह ऊपर रख दिए जाते हैं। हर मार्कर का अलग अपडेट न होने से, दसियों हज़ार पर भी कैमरे का काम सहज रहता है।
अदला-बदली अपने आप होती है। सीमा का डिफ़ॉल्ट 2,000 है: minMarkerCount बदलने के लिए मैप व्यू को विकल्प दें (Android पर markerTiling, iOS और React पर markerTilingOptions), और उन्हीं विकल्पों में टाइल कैश तथा हर ज़ूम का आइकन स्केल भी रहता है। Disabled रखने पर किसी भी संख्या पर नेटिव मार्कर बने रहते हैं।
नमूना वीडियो · मार्कर टाइल रेंडरिंग
नमूना · 24,526 आइटम एक साथ प्रदर्शित
minMarkerCount
2000 · परिवर्तनीय
cacheSize
8 MB
enabled
true
debugTileOverlay
false
PostOfficeViewModel.kt · 24,526 आइटम
// On by default; pass it to the map view to change the threshold
// (the Android parameter is called markerTiling)
val markerTiling =
    MarkerTilingOptions.Default.copy(
        minMarkerCount = 500, // switch to tile rendering from 500 markers
        iconScaleCallback = { _, zoom ->
            if (zoom > 10) 0.8 else if (zoom > 5) 0.5 else 0.2
        },
    )

GoogleMapView(state = mapViewState, markerTiling = markerTiling) { /* markers */ }

// Disable it to keep native markers at any count
val plain = MarkerTilingOptions.Disabled

04 · एनीमेशन

सरल एनीमेशन मानक रूप से तैयार हैं। निर्माण के समय निर्दिष्ट करें या बाद में animate() को कॉल करें। शुरू और समाप्त हैंडल से प्राप्त किए जा सकते हैं।

AnimationPageViewModel.kt
// Set one at creation, or call animate() later
MarkerState(position = point, animation = MarkerAnimation.Bounce)

override fun onMarkerClick(clicked: MarkerState) {
    clicked.animate(clicked.extra as? MarkerAnimation)
}

एनिमेशन के दौरान मार्कर एक विशेष ओवरले के साथ बनाए जाते हैं, इसलिए ये टाइल रेंडरिंग में बदलने की स्थिति में भी चलते हैं। आवश्यक समय SDK की सेटिंग में बदला जा सकता है।

संबंधित पेज