আপনার ভোক্তা অ্যাপে একটি ট্রিপ অনুসরণ করতে, আপনাকে প্রথমে একটি মানচিত্র সংজ্ঞায়িত করতে হবে এবং প্রয়োজনে ভেক্টর মানচিত্রের জন্য সমর্থন যোগ করতে হবে।
আপনার অ্যাপে একটি মানচিত্র সেট আপ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- একটি ট্রিপ অনুসরণ করতে একটি মানচিত্র খণ্ড সংজ্ঞায়িত করুন ।
- মানচিত্র বেস লেয়ার এবং ভিউ কন্ট্রোলারের জন্য সমর্থন যোগ করুন ।
- প্রয়োজনে ভেক্টর মানচিত্র প্রদর্শন করতে Android ভেক্টর গ্রাফিক্সের জন্য সমর্থন যোগ করুন ।
আপনি একটি মানচিত্র সংজ্ঞায়িত করার পরে, আপনি অতিরিক্ত দৃশ্য এবং ক্যামেরা নিয়ন্ত্রণ যোগ করতে পারেন যা আপনি চাক্ষুষ অভিজ্ঞতা কাস্টমাইজ করতে চান। আরও বিশদ বিবরণের জন্য, একটি মানচিত্র শৈলী দেখুন।
ধাপ 1: একটি ট্রিপ অনুসরণ করতে একটি মানচিত্র খণ্ড সংজ্ঞায়িত করুন
আপনি একটি মানচিত্র সংজ্ঞায়িত করেন একটি মানচিত্র খণ্ড বা ভিউ যোগ করে ম্যাপ তৈরি করতে যেখানে আপনি আপনার ভোক্তা অ্যাপে একটি অন-ডিমান্ড ট্রিপ শেয়ার করেন। আপনার মানচিত্র সংজ্ঞায়িত করতে, এই পদ্ধতিগুলির মধ্যে একটি অনুসরণ করুন:
ConsumerMapFragment
: আপনার মানচিত্রকে একটিFragment
দিয়ে সংজ্ঞায়িত করতে ব্যবহার করুন।ConsumerMapView
: একটিView
দিয়ে একটি মানচিত্র সংজ্ঞায়িত করতে ব্যবহার করুন।
বৈশিষ্ট্যগুলি উভয় পদ্ধতির জন্য একই, তাই আপনার অ্যাপ্লিকেশনের জন্য কোন পদ্ধতিটি ভাল তা চয়ন করুন।
উভয় পদ্ধতি নিম্নলিখিত বিভাগে আরও বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।
একটি মানচিত্র খণ্ড বা দৃশ্য যোগ করুন
একটি অ্যান্ড্রয়েড ফ্র্যাগমেন্ট বা একটি ভিউ ব্যবহার করে ভ্রমণের অগ্রগতি প্রদর্শন করার জন্য একটি মানচিত্র তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন এবং কোড উদাহরণগুলি পড়ুন৷
/res/layout
এ অবস্থিত আপনার অ্যাপ্লিকেশন লেআউট XML ফাইলে একটি খণ্ড বা দৃশ্য সংজ্ঞায়িত করুন।ConsumerMapFragment
ব্যবহার করে ট্রিপ ম্যাপটিকে একটি খণ্ড হিসাবে বাConsumerMapView
ব্যবহার করে একটি দৃশ্য হিসাবে সংজ্ঞায়িত করুন।টুকরো বা দৃশ্য তারপর ট্রিপ ম্যাপে অ্যাক্সেস প্রদান করে যা আপনার অ্যাপ অ্যাক্সেস এবং পরিবর্তন করতে পারে। মানচিত্রটি
ConsumerController
কে একটি হ্যান্ডেলও প্রদান করে, যা আপনার অ্যাপটিকে ভোক্তাদের অভিজ্ঞতা নিয়ন্ত্রণ এবং কাস্টমাইজ করতে দেয়।আপনার
onCreate()
পদ্ধতি থেকে,getConsumerGoogleMapAsync(callback)
কল করুন, যা কলব্যাকের মধ্যেConsumerGoogleMap
অ্যাসিঙ্ক্রোনাস রিটার্ন করে।ট্রিপের অগ্রগতি প্রদর্শন করতে এবং প্রয়োজন অনুযায়ী আপডেট করতে
ConsumerGoogleMap
ব্যবহার করুন।
ConsumerMapFragment
কিভাবে যোগ করবেন তার উদাহরণ
আপনার অ্যাপ্লিকেশন লেআউট XML ফাইলে খণ্ডটি সংজ্ঞায়িত করুন, যেমনটি নিম্নলিখিত কোড উদাহরণে দেখানো হয়েছে।
<fragment xmlns:android="http://schemas.android.com/apk/res/android" android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment" android:id="@+id/consumer_map_fragment" android:layout_width="match_parent" android:layout_height="match_parent" />
onCreate()
পদ্ধতি থেকেgetConsumerGoogleMapAsync()
এ একটি কল করুন।
জাভা
public class SampleAppActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// Find the ConsumerMapFragment.
ConsumerMapFragment consumerMapFragment =
(ConsumerMapFragment) fragmentManager.findFragmentById(R.id.consumer_map_fragment);
// Initiate the callback that returns the map.
if (consumerMapFragment != null) {
consumerMapFragment.getConsumerGoogleMapAsync(
new ConsumerMapReadyCallback() {
// The map returned in the callback is used to access the ConsumerController.
@Override
public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
ConsumerController consumerController = consumerGoogleMap.getConsumerController();
}
});
}
}
}
কোটলিন
class SampleAppActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Find the ConsumerMapFragment.
val consumerMapFragment =
fragmentManager.findFragmentById(R.id.consumer_map_fragment) as ConsumerMapFragment
consumerMapFragment.getConsumerGoogleMapAsync(
object : ConsumerMapReadyCallback() {
override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
val consumerController = consumerGoogleMap.getConsumerController()!!
}
}
)
}
}
ConsumerMapView
কিভাবে যোগ করবেন তার উদাহরণ
আপনার XML ফাইলে সংজ্ঞায়িত হিসাবে একটি খণ্ডে বা একটি কার্যকলাপে ভিউ ব্যবহার করুন।
<com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/consumer_map_view" android:layout_width="match_parent" android:layout_height="match_parent" />
onCreate()
থেকেgetConsumerGoogleMapAsync()
এ কল করুন। কলব্যাক প্যারামিটার ছাড়াও, নিম্নলিখিত বিবরণ অন্তর্ভুক্ত করুন:ধারণ করা কার্যকলাপ বা খণ্ড. অ্যাক্টিভিটি বা ফ্র্যাগমেন্ট বেস ক্লাস অবশ্যই একটি
FragmentActivity
বা একটি সাপোর্টFragment
(যথাক্রমে) হতে হবে, যেহেতু তারা এর জীবনচক্রে অ্যাক্সেস প্রদান করে।GoogleMapOptions
(যা শূন্য হতে পারে), যাতেMapView
জন্য কনফিগারেশন বৈশিষ্ট্য রয়েছে।
জাভা
public class SampleAppActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
ConsumerMapView mapView = findViewById(R.id.consumer_map_view);
if (mapView != null) {
mapView.getConsumerGoogleMapAsync(
new ConsumerMapReadyCallback() {
// The map returned in the callback is used to access the ConsumerController.
@Override
public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
ConsumerController consumerController = consumerGoogleMap.getConsumerController();
}
}, this, null);
}
}
}
কোটলিন
class SampleAppActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
val mapView = findViewById(R.id.consumer_map_view) as ConsumerMapView
mapView.getConsumerGoogleMapAsync(
object : ConsumerMapReadyCallback() {
// The map returned in the callback is used to access the ConsumerController.
override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
val consumerController = consumerGoogleMap.getConsumerController()!!
}
},
/* fragmentActivity= */ this,
/* googleMapOptions= */ null,
)
}
}
একটি খণ্ডের একটি MapView
একটি কার্যকলাপে MapView
এর পূর্ববর্তী উদাহরণের মতোই, ব্যতীত যে খণ্ডটি বিন্যাসটিকে স্ফীত করে যা ফ্র্যাগমেন্ট onCreateView()
পদ্ধতিতে MapView
অন্তর্ভুক্ত করে৷
জাভা
public class MapViewInFragment extends Fragment {
@Override
public View onCreateView(
@NonNull LayoutInflater layoutInflater,
@Nullable ViewGroup viewGroup,
@Nullable Bundle bundle) {
return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false);
}
}
কোটলিন
class MapViewInFragment : Fragment() {
override fun onCreateView(
layoutInflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View {
return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false)
}
}
ধাপ 2: মানচিত্র বেস লেয়ার এবং ভিউ কন্ট্রোলারের জন্য সমর্থন যোগ করুন
আপনার অ্যাপে ভ্রমণের অগ্রগতি শেয়ার করতে, আপনার অ্যাপে নিম্নলিখিত ক্লাসগুলি যোগ করুন: ConsumerGoogleMap
এবং ConsumerController
।
ConsumerMapFragment
বাConsumerMapView
থেকেConsumerGoogleMap
পান, উভয়টিইConsumerMapReadyCallback
এ অসিঙ্ক্রোনাসভাবেConsumerGoogleMap
ফেরত দেয়।ConsumerGoogleMap
হলGoogleMap
ক্লাসের জন্য একটি মোড়ক শ্রেণী। এটিGoogleMap
এর সমতুল্য একটি API ব্যবহার করে যাতে আপনার অ্যাপটি মানচিত্রের সাথে ইন্টারঅ্যাক্ট করতে পারে। এইভাবে, আপনার অ্যাপ একই অন্তর্নিহিত Google মানচিত্রের সাথে নির্বিঘ্নে যোগাযোগ করতে পারে। উদাহরণস্বরূপ,GoogleMap
শুধুমাত্র একটি একক কলব্যাক নিবন্ধনের অনুমতি দেয়, কিন্তুConsumerGoogleMap
দ্বৈত নিবন্ধিত কলব্যাক সমর্থন করে। এই কলব্যাকগুলি আপনার অ্যাপকে কলব্যাকগুলি নিবন্ধন করতে দেয় যা ক্রমানুসারে বলা হয়।getConsumerController()
এConsumerGoogleMap
থেকেConsumerController
পান।ConsumerController
ট্রিপ শেয়ারিং ফিচারে অ্যাক্সেস প্রদান করে যেমন মনিটর ট্রিপ, কন্ট্রোল ট্রিপ স্ট্যাটাস এবং সেট লোকেশন।
কিভাবে জাভা এবং কোটলিনে আপনার অ্যাপে ConsumerGoogleMap
এবং ConsumerController
যোগ করবেন, নিম্নলিখিত উদাহরণগুলি দেখুন।
জাভা
private ConsumerGoogleMap consumerGoogleMap;
private ConsumerController consumerController;
private ConsumerMapView consumerMapView;
consumerMapView.getConsumerGoogleMapAsync(
new ConsumerMapReadyCallback() {
@Override
public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerMap) {
consumerGoogleMap = consumerMap;
consumerController = consumerMap.getConsumerController();
}
},
this, null);
কোটলিন
var consumerGoogleMap: ConsumerGoogleMap
var consumerController: ConsumerController
val consumerMapView = findViewById(R.id.consumer_map_view) as ConsumerMapView
consumerMapView.getConsumerGoogleMapAsync(
object : ConsumerMapReadyCallback() {
override fun onConsumerMapReady(consumerMap: ConsumerGoogleMap) {
consumerGoogleMap = consumerMap
consumerController = consumerMap.getConsumerController()
},
/* fragmentActivity= */ this,
/* googleMapOptions= */ null,
}
)
ধাপ 3: অ্যান্ড্রয়েড ভেক্টর গ্রাফিক্সের জন্য সমর্থন যোগ করুন
যদি আপনার অ্যাপ ডিজাইনের ভেক্টর গ্রাফিক্সের জন্য সমর্থনের প্রয়োজন হয়, তাহলে এই ধাপগুলি ব্যবহার করে Android ডিভাইস এবং ভেক্টর ড্রয়েবলের জন্য সমর্থন যোগ করুন:
- আপনার কার্যকলাপে নিম্নলিখিত কোড যোগ করুন. এই কোডগুলি উপভোক্তা SDK-এ ভেক্টর অঙ্কনযোগ্য ব্যবহার করার জন্য
AppCompatActivity
প্রসারিত করে৷
জাভা
// ...
import android.support.v7.app.AppCompatActivity;
// ...
public class ConsumerTestActivity extends AppCompatActivity {
// ...
}
কোটলিন
// ...
import android.support.v7.app.AppCompatActivity
// ...
class ConsumerTestActivity : AppCompatActivity() {
// ...
}