ক্যামেরা কন্ট্রোল কনফিগার করা

প্ল্যাটফর্ম বেছে নিন: Android iOS JavaScript

ব্যবহারকারীরা ম্যাপে জেসচার ব্যবহার করে ক্যামেরার জুম, টিল্ট, পজিশন এবং রোটেশন কন্ট্রোল করতে পারবেন। এছাড়াও, আপনি প্রোগ্রাম্যাটিক্যালি ক্যামেরা কনফিগার করতে পারবেন।

3D ক্যামেরা মডেলের ডায়াগ্রাম

ক্যামেরার অবস্থান

ম্যাপ ভিউকে এমনভাবে মডেল করা হয়েছে যাতে মনে হয় ক্যামেরা স্পেসের কোনও নির্দিষ্ট পয়েন্টের দিকে তাক করে আছে। ক্যামেরার অবস্থান এবং ওরিয়েন্টেশন অক্ষাংশ/দ্রাঘিমাংশ/উচ্চতা স্থানাঙ্ক (যেখানে ক্যামেরা নির্দেশ করছে, সেটিকে "কেন্দ্র" হিসেবে সংজ্ঞায়িত করা হয়), হেডিং, টিল্ট, রেঞ্জ এবং রোল দ্বারা সংজ্ঞায়িত করা হয়।

কেন্দ্র (অক্ষাংশ, দ্রাঘিমাংশ, উচ্চতা)

কেন্দ্র 3D স্পেসে নির্দিষ্ট পয়েন্টকে সংজ্ঞায়িত করে যা ক্যামেরা পর্যবেক্ষণ করছে। এটি LatLngAltitude ক্লাস ব্যবহার করে নির্দিষ্ট করা হয়, যা অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতার মান একত্রিত করে। এটি আপনাকে ক্যামেরার ফোকাল পয়েন্ট থ্রি ডাইমেনশনে পজিশন করতে দেয়।

অক্ষাংশ -৯০ থেকে ৯০ ডিগ্রির মধ্যে হতে পারে। দ্রাঘিমাংশ -১৮০ থেকে ১৮০ ডিগ্রির মধ্যে হয়। উচ্চতা মিটারে নির্দিষ্ট করা হয়, এবং উচ্চতা কীভাবে ব্যাখ্যা করা হয় তা ক্যামেরার altitudeMode (AltitudeMode.ABSOLUTE ডিফল্ট হিসেবে, AltitudeMode.RELATIVE_TO_GROUND, অথবা AltitudeMode.RELATIVE_TO_MESH) দ্বারা নির্ধারিত হয়।

শিরোনাম

হেডিং ম্যাপের কম্পাস দিক নির্দেশ করে, যা প্রকৃত উত্তর দিক থেকে ঘড়ির কাঁটার দিকে ডিগ্রিতে পরিমাপ করা হয়। উত্তর দিক ০ ডিগ্রি, পূর্ব দিক ৯০ ডিগ্রি, দক্ষিণ দিক ১৮০ ডিগ্রি এবং পশ্চিম দিক ২৭০ ডিগ্রির সমতুল্য।

টিল্ট

টিল্ট উল্লম্ব অক্ষের সাপেক্ষে ক্যামেরার কোণ নির্দিষ্ট করে, যা ডিগ্রিতে পরিমাপ করা হয়। ০ ডিগ্রি টিল্ট মানে ক্যামেরা পৃথিবীর দিকে সরাসরি নিচের দিকে তাক করে আছে ( নাদির)। ৯০ ডিগ্রি টিল্ট মানে ক্যামেরাটি অনুভূমিকভাবে হেডিং-এর মাধ্যমে নির্দিষ্ট করা দিকে পয়েন্ট করা আছে।

ব্যাপ্তি

রেঞ্জ ক্যামেরার নিজস্ব অবস্থান এবং ম্যাপের কেন্দ্রের মধ্যে মিটারের দূরত্ব নির্ধারণ করে। এই রেঞ্জ শূন্য মিটার (খুব কাছ থেকে) থেকে শুরু করে ৬৩ মিলিয়ন মিটার পর্যন্ত হতে পারে, যার ফলে খুব কাছ থেকে শুরু করে একদম গ্লোবাল পার্সপেক্টিভ পর্যন্ত ভিউ পাওয়া যায়। এটি ম্যাপকে "জুম-ইন" বা "জুম-আউট" করে দেখানোর বিষয়টি নিয়ন্ত্রণ করে।

রোল

রোল দিগন্তের সাপেক্ষে ক্যামেরার কোণ সেট করে, যা ডিগ্রিতে পরিমাপ করা হয়। এই প্যারামিটারটি ফ্লাইট সিমুলেশনের সময় ব্যাঙ্কিং বা এমনকি একটি সম্পূর্ণ ব্যারেল রোলের মতো এফেক্ট তৈরি করতে ব্যবহার করা যেতে পারে, যা ক্যামেরাকে তার দেখার অক্ষের চারপাশে ঘোরায়।

ক্যামেরা কন্ট্রোল করা

নিম্নলিখিত কোড স্যাম্পেল থেকে জানা যায় যে কীভাবে GoogleMap3D-এ setCamera মেথড কল করার মাধ্যমে Camera প্রোগ্রাম্যাটিক্যালি নিয়ন্ত্রণ করা যায়। এই কোড স্যাম্পেল ব্যবহার করতে, সেট-আপ এবং আপনার অ্যাপে 3D ম্যাপ যোগ করুন বিকল্পে দেওয়া নির্দেশাবলী অনুসরণ করে বেসিক 3D ম্যাপ সহ আপনার Android Studio প্রোজেক্ট সেট-আপ করুন। তারপর, MainActivity.kt ফাইলে নিম্নলিখিত কোড যোগ করুন:


// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
import com.google.android.gms.maps3d.model.latLngAltitude

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
    camera {
        center = latLngAltitude {
            latitude = 38.743502
            longitude = -109.499374
            altitude = 1467.0
        }
        heading = 350.0
        tilt = 58.1
        range = 138.2
        roll = 0.0
    }
)

UI কন্ট্রোল

স্ট্যান্ডার্ড জেসচার ছাড়াও, Android-এর জন্য Maps 3D SDK ক্যামেরার পজিশন ম্যানিপুলেট করার জন্য UI কন্ট্রোলও প্রদান করে।

  • জুম কন্ট্রোল ম্যাপের জুম লেভেল পরিবর্তন করার জন্য "+" এবং "-" বোতাম দেখায়।
  • সরানোর কন্ট্রোল ম্যাপের কেন্দ্র পরিবর্তন করার জন্য "←", "→", "↑" এবং "↓" বোতাম দেখায়।
  • ঘোরানোর কন্ট্রোল "↺" এবং "↻" দেখায় যা ক্যামেরার হেডিং পরিবর্তন করে।
  • টিল্ট কন্ট্রোল "^" এবং "⌄" দেখায়, যা ক্যামেরার টিল্ট পরিবর্তন করতে ব্যবহার করা হয়।
  • কম্পাস কন্ট্রোল কম্পাসের উত্তর দিক নির্দেশ করে এবং ক্যামেরা উত্তর দিকে রিসেট করার অনুমতি দেয়।

নিম্নলিখিত কোড স্যাম্পেল থেকে UI কন্ট্রোলের দৃশ্যমানতা কীভাবে পরিবর্তন করতে হয় তা দেখানো হয়েছে:

Kotlin


// Add imports
import com.google.android.gms.maps3d.UiControlSettings
import com.google.android.gms.maps3d.model.CompassControl
import com.google.android.gms.maps3d.model.TiltControl
import com.google.android.gms.maps3d.model.ZoomControl

...

val uiControlSettings = googleMap3D.getUiControlSettings()

// Show UI controls on the trailing edge of the map
uiControlSettings?.setUiControlsPlacement(
    listOf(CompassControl(), ZoomControl(), TiltControl()),
    UiControlSettings.ControlPlacement.TRAILING
)

// Hide UI controls on the trailing edge of the map
uiControlSettings?.setUiControlsPlacement(
    emptyList(),
    UiControlSettings.ControlPlacement.TRAILING
)