আপনি
MarkerView
ব্যবহার করে 3D ম্যাপে মার্কার হিসেবে কাস্টম Android View হায়ারার্কি রেন্ডার করতে পারবেন। কাস্টম ভিউ
মার্কার আপনাকে ভৌগোলিক কোঅর্ডিনেটে অ্যাঙ্কর করা সমৃদ্ধ UI লেআউট, ইন্ট্যার্যাক্টিভ উইজেট এবং ভিউ
অ্যানিমেশন দেখাতে দেয়।
কাস্টম ভিউ মার্কার যোগ করুন
আপনার ম্যাপে কাস্টম ভিউ মার্কার যোগ করতে, একটি
MarkerViewOptions
ইনস্ট্যান্স তৈরি করুন,
LatLngAltitude
অবজেক্ট ব্যবহার করে
setPosition
দিয়ে এটির লোকেশন কনফিগার করুন এবং
setContent ব্যবহার করে আপনার কাস্টম Android View প্রদান করুন।
তারপরে, আপনার
GoogleMap3D
ইনস্ট্যান্সে
addMarkerView
বিকল্পগুলি পাস করুন।
আপনি কোনও ভিউ না দিলে
setContent,
SDK একটি ডিফল্ট
PinView তৈরি ও রেন্ডার করে।
// Add imports
import android.widget.TextView
import com.google.android.gms.maps3d.model.MarkerViewOptions
import com.google.android.gms.maps3d.model.latLngAltitude
// Create a custom Android View
val badgeView = TextView(context).apply {
text = "Empire State Building"
contentDescription = "Marker for Empire State Building"
setPadding(24, 12, 24, 12)
}
// Configure MarkerViewOptions and add the marker view to the map
val options = MarkerViewOptions().apply {
position = latLngAltitude {
latitude = 40.7484
longitude = -73.9857
altitude = 100.0
}
content = badgeView
}
val markerView = googleMap3D.addMarkerView(options)
ডিফল্ট PinView কাস্টমাইজ করুন
সম্পূর্ণ কাস্টম Android View তৈরি করার পরিবর্তে, আপনি
কাস্টমাইজ করা পিন রেন্ডার করতে পারেন, এর জন্য আপনাকে
কাস্টম
PinConfiguration
(অথবা
setPinConfiguration-এর মাধ্যমে আগে থেকে থাকা ইনস্ট্যান্স আপডেট করে)
সহ
PinView
তৈরি করতে হবে এবং সেটি
setContent-এ পাস করতে হবে।
// Add imports
import android.graphics.Color
import com.google.android.gms.maps3d.model.MarkerViewOptions
import com.google.android.gms.maps3d.model.PinView
import com.google.android.gms.maps3d.model.latLngAltitude
import com.google.android.gms.maps3d.model.pinConfiguration
// Create a customized PinView
val customPinView = PinView(context, pinConfiguration {
backgroundColor = Color.BLUE
borderColor = Color.WHITE
})
// Configure MarkerViewOptions and add the marker view to the map
val options = MarkerViewOptions().apply {
position = latLngAltitude {
latitude = 40.7484
longitude = -73.9857
altitude = 100.0
}
content = customPinView
}
val markerView = googleMap3D.addMarkerView(options)
ইন্টার্যাকশন ও অ্যানিমেশন ম্যানেজ করা
যেহেতু একটি
MarkerView
Android View-কে র্যাপ করে, তাই আপনি স্ট্যান্ডার্ড ক্লিক লিসনার অ্যাটাচ করতে পারবেন এবং
getContent-এর মাধ্যমে রিটার্ন করা ভিউতে সরাসরি অ্যানিমেশন
দেখতে পারবেন।
এছাড়াও,
MarkerView
Anchorable
প্রয়োগ করে,
যা আপনাকে
addPopover
ব্যবহার করে মার্কার ভিউতে
Popover
অ্যাঙ্কর করতে দেয়:
markerView?.content?.setOnClickListener { view ->
// Animate the view when clicked
view.animate().rotationBy(90f).setDuration(300).start()
}
উচ্চতা ও কলিশন বিহেভিওর কনফিগার করুন
কোনও
MarkerView
উল্লম্বভাবে কীভাবে পজিশন করা হয় এবং ওভারল্যাপ করা ম্যাপ লেবেল বা
মার্কারের সাথে কীভাবে ইন্টার্যাক্ট করে তা আপনি কাস্টমাইজ করতে পারবেন:
- অল্টিটিউড মোড:
MarkerViewOptions-এAltitudeModeধ্রুবক সহsetAltitudeModeকল করুন। ডিফল্ট হিসেবে,MarkerViewOptionsAltitudeMode.CLAMP_TO_GROUNDব্যবহার করে। - কলিশন বিহেভিওর:
CollisionBehaviorকনস্ট্যান্ট (ডিফল্ট হিসেবেCollisionBehavior.REQUIRED) দিয়েsetCollisionBehaviorকল করুন এবং মার্কার কলিশন হলে ডিসপ্লে সংক্রান্ত অগ্রাধিকার নির্দিষ্ট করতেsetCollisionPriorityব্যবহার করুন।
অ্যাক্সেসিবিলিটি ও সরিয়ে দেওয়া
setContent-কে সরবরাহ করা কাস্টম Android View-এ অ্যাক্সেসিবিলিটি প্রপার্টি—যেমন
contentDescription—কনফিগার করার দায়িত্ব আপনার।
ম্যাপ থেকে
MarkerView
সরিয়ে দিতে, remove-এ কল করুন:
markerView?.remove()