ในการเพิ่มเครื่องหมายขั้นสูงลงในแผนที่ ให้สร้างอินสแตนซ์ใหม่ของ AdvancedMarkerOptions
แล้วใช้ GoogleMap.addMarker()
เพื่อเพิ่มเครื่องหมาย ดังนี้
Kotlin
private val SYDNEY = LatLng(-33.87365, 151.20689)
val marker: Marker? = map.addMarker( AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) .zIndex(zIndex) )
Java
private final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
Marker marker = map.addMarker( new AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) .zIndex(zIndex));
GoogleMap.addMarker()
แสดงผลอินสแตนซ์ของ Marker
หากจำเป็น คุณจะแคสต์ค่าที่ส่งคืนไปยัง AdvancedMarker
ได้
ใช้ AdvancedMarkerOptions
เพื่อกำหนดค่าเครื่องหมายขั้นสูง
AdvancedMarkerOptions
เป็นคลาสย่อยของ MarkerOptions
จึงรองรับการตั้งค่าเดียวกันกับ MarkerOptions
ทั้งหมด
AdvancedMarkerOptions
ยังให้คุณทำสิ่งต่อไปนี้ได้ด้วย
สร้างอินสแตนซ์ของคลาส
PinConfig
แล้วใช้อินสแตนซ์PinConfig
เพื่อกำหนดค่าอินสแตนซ์AdvancedMarkerOptions
ใช้
PinConfig
เพื่อปรับแต่งคุณสมบัติของตัวทำเครื่องหมายขั้นสูง เช่น สีพื้นหลัง สีเส้นขอบ และรูปอักขระสร้างอินสแตนซ์ของคลาส Android
View
และใช้อินสแตนซ์นั้นเพื่อกำหนดค่าอินสแตนซ์AdvancedMarkerOptions
อินสแตนซ์มุมมองจะช่วยให้คุณปรับแต่งตัวทำเครื่องหมายได้ทั้งหมด
ใช้ PinConfig
คลาส PinConfig
มีตัวเลือกในการปรับแต่งตัวทำเครื่องหมายขั้นสูง ใช้ PinConfig
เพื่อ:
- เปลี่ยนสีพื้นหลัง
- เปลี่ยนสีเส้นขอบ
- เปลี่ยนสีรูปอักขระหรือเพิ่มข้อความ
- ซ่อนรูปอักขระ
ใช้ PinConfig.Builder
เพื่อสร้างอินสแตนซ์ของ PinConfig
:
Kotlin
// Use PinConfig.Builder to create an instance of PinConfig. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBackgroundColor(Color.MAGENTA) val pinConfig: PinConfig = pinConfigBuilder.build()// Use the PinConfig instance to set the icon for AdvancedMarkerOptions. val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .icon(BitmapDescriptorFactory.fromPinConfig(pinConfig)) .position(MARKER_POSITION)
// Pass the AdvancedMarkerOptions instance to addMarker(). val marker: Marker? = map.addMarker(advancedMarkerOptions)
Java
// Use PinConfig.Builder to create an instance of PinConfig. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBackgroundColor(Color.MAGENTA); PinConfig pinConfig = pinConfigBuilder.build();
// Use the PinConfig instance to set the icon for AdvancedMarkerOptions. AdvancedMarkerOptions advancedMarkerOptions = new AdvancedMarkerOptions() .icon(BitmapDescriptorFactory.fromPinConfig(pinConfig)) .position(MARKER_POSITION);
// Pass the AdvancedMarkerOptions instance to addMarker(). Marker marker = map.addMarker(advancedMarkerOptions);
เปลี่ยนสีพื้นหลัง
ใช้เมธอด PinConfig.background()
เพื่อเปลี่ยนสีพื้นหลังของเครื่องหมาย
Kotlin
// Use PinConfig.Builder to create an instance of PinConfig. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBackgroundColor(Color.MAGENTA) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Use PinConfig.Builder to create an instance of PinConfig. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBackgroundColor(Color.MAGENTA); PinConfig pinConfig = pinConfigBuilder.build();
เปลี่ยนสีเส้นขอบ
ใช้เมธอด PinConfig.borderColor()
เพื่อเปลี่ยนสีเส้นขอบของเครื่องหมาย ดังนี้
Kotlin
// Set the border color. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBorderColor(Color.BLUE) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Set the border color. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBorderColor(Color.BLUE); PinConfig pinConfig = pinConfigBuilder.build();
เปลี่ยนรูปอักขระ
สร้างอินสแตนซ์ Glyph
แล้วใช้อินสแตนซ์นั้นในการกำหนดค่า PinConfig
ใช้รูปอักขระเพื่อกำหนดข้อความรูปอักขระและสีข้อความ สีรูปอักขระ หรือเพื่อระบุรูปภาพที่กำหนดเองเพื่อใช้เป็นรูปอักขระ
ตัวอย่างต่อไปนี้จะกำหนดข้อความรูปอักขระ
Kotlin
// Set the glyph text. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() val glyphText = Glyph("A")
// Alteratively, you can set the text color: // Glyph glyphText = new Glyph("A", Color.GREEN);
pinConfigBuilder.setGlyph(glyphText) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Set the glyph text. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); PinConfig.Glyph glyphText = new PinConfig.Glyph("A");
// Alternatively, you can set the text color: // PinConfig.Glyph glyphText = new PinConfig.Glyph("A", Color.GREEN);
pinConfigBuilder.setGlyph(glyphText); PinConfig pinConfig = pinConfigBuilder.build();
ตั้งค่าสีรูปอักขระดังนี้
Kotlin
val glyphColor = PinConfig.Glyph(Color.BLUE) pinConfigBuilder.setGlyph(glyphColor) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
PinConfig.Glyph glyphColor = new PinConfig.Glyph(Color.BLUE); pinConfigBuilder.setGlyph(glyphColor); PinConfig pinConfig = pinConfigBuilder.build();
ตั้งค่ารูปภาพที่กําหนดเองสําหรับรูปอักขระ เทคนิคนี้มีประโยชน์หากคุณต้องการใช้โลโก้ที่กำหนดเองหรือสัญลักษณ์ที่มองเห็นได้อื่นๆ ในเครื่องหมาย
Kotlin
// Set the glyph image. val glyphImage: Int = R.drawable.example_image val descriptor = PinConfig.BitmapDescriptorFactory.fromResource(glyphImage) pinConfigBuilder.setGlyph(Glyph(descriptor)) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Set the glyph image. int glyphImage = R.drawable.example_image; BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(glyphImage); pinConfigBuilder.setGlyph(new PinConfig.Glyph(descriptor)); PinConfig pinConfig = pinConfigBuilder.build();
ซ่อนรูปอักขระ
คุณสามารถซ่อนรูปอักขระเพื่อให้สีพื้นหลังเต็มไปด้วยเครื่องหมายได้โดยทำดังนี้
Kotlin
// Create a transparent glyph. val pinConfigBuilder: PinConfig.Builder = PinConfig.builder() pinConfigBuilder.setBackgroundColor(Color.MAGENTA) pinConfigBuilder.setGlyph(PinConfig.Glyph(Color.TRANSPARENT)) val pinConfig: PinConfig = pinConfigBuilder.build()
Java
// Create a transparent glyph. PinConfig.Builder pinConfigBuilder = PinConfig.builder(); pinConfigBuilder.setBackgroundColor(Color.MAGENTA); pinConfigBuilder.setGlyph(new PinConfig.Glyph(Color.TRANSPARENT)); PinConfig pinConfig = pinConfigBuilder.build();
ใช้มุมมองไอคอน
เมธอด AdvancedMarkerOptions.iconView()
ช่วยให้คุณใช้ Android View
เป็นเครื่องหมายได้ เมื่อใช้มุมมองเป็นเครื่องหมาย คุณจะควบคุมเครื่องหมายได้โดยสมบูรณ์
สร้างข้อมูลพร็อพเพอร์ตี้ในแอปก่อน แล้วใช้เมธอด AdvancedMarkerOptions.iconView()
เพื่อเพิ่มมุมมองลงในเครื่องหมายขั้นสูง
Kotlin
// Create a TextView to use as the marker. val textView = TextView(this) textView.text = "Hello!!" textView.setBackgroundColor(Color.BLACK) textView.setTextColor(Color.YELLOW)
val marker: Marker? = map.addMarker( AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView) )
Java
// Create a TextView to use as the marker. TextView textView = new TextView(this); textView.setText("Hello!!"); textView.setBackgroundColor(Color.BLACK); textView.setTextColor(Color.YELLOW);
Marker marker = map.addMarker( new AdvancedMarkerOptions() .position(SYDNEY) .iconView(textView));