คู่มือนี้อธิบายวิธีจัดรูปแบบแผนที่ที่แสดงในแอป iOS เมื่อติดตามการเดินทาง
ก่อนเริ่มต้น
ก่อนจัดรูปแบบแผนที่ คุณต้องมีแอปสำหรับผู้ใช้ทั่วไปที่ได้ติดตั้งใช้งานสิ่งต่อไปนี้
มุมมองแผนที่ ดูเริ่มต้นมุมมองแผนที่
วิธีจัดการเหตุการณ์ในมุมมองแผนที่ ดู จัดการเหตุการณ์ในมุมมองแผนที่
นอกจากนี้ คุณยังต้องตั้งค่าบริการแบ็กเอนด์ที่ Consumer SDK ต้องการ และตั้งค่า Consumer SDK ดูรายละเอียดได้ที่ตั้งค่า Consumer SDK และ Fleet Engine คืออะไร
การปรับแต่งแผนที่
การปรับแต่งที่ใช้ได้มีดังนี้
จัดรูปแบบแผนที่: คุณสามารถจัดรูปแบบสีของแผนที่ เส้นหลายเส้น และฟีเจอร์อื่นๆ ของแผนที่ โดยใช้การจัดรูปแบบแผนที่ในระบบคลาวด์ ดู จัดรูปแบบแผนที่
ปรับระดับการซูมของกล้อง: คุณสามารถใช้ฟีเจอร์ในตัวหรือตั้งค่า ตัวเลือกกล้องของคุณเองเพื่อโฟกัสที่การเดินทาง ดู ปรับระดับการซูมของกล้องเพื่อโฟกัสที่การเดินทาง
ปรับแต่งมาร์กเกอร์และเส้นหลายเส้น: คุณสามารถเพิ่มมาร์กเกอร์ที่กำหนดเองและเส้นหลายเส้นของเส้นทาง ลงในการออกแบบแอป องค์ประกอบการออกแบบเหล่านี้ช่วยให้แอปสำหรับผู้ใช้ทั่วไปแสดงตัวอย่างแบบไดนามิกของเส้นทางของยานพาหนะได้ ดู ปรับแต่งมาร์กเกอร์และ ปรับแต่งเส้นหลายเส้น
SDK มีตัวเลือกเหล่านี้ผ่านพร็อพเพอร์ตี้
consumerMapStyleCoordinatorพร็อพเพอร์ตี้นี้ใช้ได้ผ่านคลาสGMTCMapView
จัดรูปแบบแผนที่ด้วยการจัดรูปแบบแผนที่ในระบบคลาวด์
ปรับแต่งรูปลักษณ์ของคอมโพเนนต์แผนที่โดยใช้การจัดรูปแบบแผนที่ในระบบคลาวด์ คุณสามารถสร้างและแก้ไขรูปแบบแผนที่ในคอนโซล Google Cloud สำหรับแอปใดก็ตามที่ใช้ Google Maps โดยไม่ต้องทำการเปลี่ยนแปลงโค้ด ดูข้อมูลเพิ่มเติมได้โดยเลือกแพลตฟอร์มที่ การจัดรูปแบบแผนที่ในระบบคลาวด์
ทั้งคลาส
ConsumerMapView
และ
ConsumerMapFragment
รองรับการจัดรูปแบบแผนที่ในระบบคลาวด์
หากต้องการใช้การจัดรูปแบบแผนที่ในระบบคลาวด์ ให้ตรวจสอบว่าตัวแสดงผลแผนที่ที่เลือกคือ LATEST ส่วนต่อไปนี้จะแสดงตัวอย่างวิธีใช้การจัดรูปแบบแผนที่ในระบบคลาวด์กับโปรเจ็กต์
ConsumerMapView
หากต้องการใช้การจัดรูปแบบแผนที่ในระบบคลาวด์ใน ConsumerMapView ให้ตั้งค่าฟิลด์
mapId ใน GoogleMapOptions แล้วส่ง GoogleMapOptions ไปยัง
getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment,
GoogleMapOptions)
หรือ getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity,
GoogleMapOptions)
ตัวอย่าง
Java
public class SampleAppActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ConsumerMapView mapView = findViewById(R.id.consumer_map_view);
if (mapView != null) {
GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
mapView.getConsumerGoogleMapAsync(
new ConsumerMapReadyCallback() {
@Override
public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
// ...
}
},
/* fragmentActivity= */ this,
/* googleMapOptions= */ optionsWithMapId);
}
}
}
Kotlin
class SampleAppActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val mapView = findViewById(R.id.consumer_map_view) as ConsumerMapView
val optionsWithMapId = GoogleMapOptions().mapId("map-id")
mapView.getConsumerGoogleMapAsync(
object : ConsumerGoogleMap.ConsumerMapReadyCallback() {
override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
// ...
}
},
/* fragmentActivity= */ this,
/* googleMapOptions= */ optionsWithMapId)
}
}
ConsumerMapFragment
การใช้การจัดรูปแบบแผนที่ในระบบคลาวด์ใน ConsumerMapFragments ทำได้ 2 วิธี ดังนี้
- แบบคงที่ด้วย XML
- แบบไดนามิกด้วย
newInstance
แบบคงที่ด้วย XML
หากต้องการใช้การจัดรูปแบบแผนที่ในระบบคลาวด์กับ XML ใน
ConsumerMapFragment ให้เพิ่มแอตทริบิวต์ XML map:mapId ที่มี
mapId ที่ระบุ ดูตัวอย่างต่อไปนี้
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
android:id="@+id/consumer_map_fragment"
map:mapId="map-id"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
แบบไดนามิกด้วย newInstance
หากต้องการใช้การจัดรูปแบบแผนที่ในระบบคลาวด์กับ newInstance ใน ConsumerMapFragment ให้ตั้งค่าฟิลด์ mapId ใน GoogleMapOptions แล้วส่ง GoogleMapOptions ไปยัง newInstance ดูตัวอย่างต่อไปนี้
Java
public class SampleFragmentJ extends Fragment {
@Override
public View onCreateView(
@NonNull LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.consumer_map_fragment, container, false);
GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
ConsumerMapFragment consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId);
getParentFragmentManager()
.beginTransaction()
.add(R.id.consumer_map_fragment, consumerMapFragment)
.commit();
consumerMapFragment.getConsumerGoogleMapAsync(
new ConsumerMapReadyCallback() {
@Override
public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
// ...
}
});
return view;
}
}
Kotlin
class SampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.consumer_map_fragment, container, false)
val optionsWithMapId = GoogleMapOptions().mapId("map-id")
val consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId)
parentFragmentManager
.beginTransaction()
.add(R.id.consumer_map_fragment, consumerMapFragment)
.commit()
consumerMapFragment.getConsumerGoogleMapAsync(
object : ConsumerMapReadyCallback() {
override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
// ...
}
})
return view
}
}
ปรับระดับการซูมของกล้องเพื่อโฟกัสที่การเดินทาง
ในระหว่างเซสชันการแชร์การเดินทางที่ใช้งานอยู่ ผู้ใช้จะได้รับประโยชน์จากการดูยานพาหนะในมุมมองที่กว้างขึ้นตลอดการเดินทางแทนที่จะเป็นมุมมองระยะใกล้ของยานพาหนะบนเส้นทาง หากต้องการทำเช่นนี้ ให้ปรับระดับการซูมของกล้องโดยใช้ AutoCamera ในตัวหรือปรับแต่งลักษณะการทำงานของกล้องด้วยตนเองดังนี้
AutoCamera: หากต้องการใช้AutoCameraคุณไม่จำเป็นต้องดำเนินการใดๆ กล้องจะติดตามการเดินทางโดยค่าเริ่มต้นปรับแต่งลักษณะการทำงานของกล้อง: หากต้องการปรับแต่งลักษณะการทำงานของกล้อง คุณต้องปิดใช้
AutoCameraก่อน แล้วจึงทำการปรับแต่ง
AutoCamera จะจัดกล้องไว้ตรงกลางโดยค่าเริ่มต้น
Consumer SDK มีฟีเจอร์ AutoCamera ซึ่งเปิดใช้โดยค่าเริ่มต้นในปุ่มตำแหน่งของฉัน ในตัวสำหรับ Maps SDK กล้องจะซูมเพื่อโฟกัสที่เส้นทางการเดินทางและจุดแวะพักถัดไปของการเดินทาง
หากต้องการใช้ AutoCamera ให้ตรวจสอบว่าได้เปิดใช้แล้ว ดูรายละเอียดเพิ่มเติมได้ที่
allowCameraAutoUpdate

ดูรายละเอียดเกี่ยวกับปุ่มตำแหน่งของฉัน สำหรับ Maps SDK ได้ที่ ปุ่มตำแหน่งของฉัน ในเอกสารประกอบ Maps SDK สำหรับ iOS
ปรับแต่งลักษณะการทำงานของกล้อง
หากต้องการควบคุมลักษณะการทำงานของกล้องได้มากขึ้น คุณสามารถปิดใช้ AutoCamera และปรับแต่งลักษณะการทำงานของกล้องได้
ปิดใช้หรือเปิดใช้ AutoCamera ด้วยพร็อพเพอร์ตี้
AllowCameraAutoUpdate
ดูการปรับแต่งกล้องเพิ่มเติมได้ที่ การย้ายกล้อง ในเอกสารประกอบ Maps SDK สำหรับ iOS