เพิ่มชุดข้อมูลลงในแผนที่และชุดข้อมูลรูปแบบ

เลือกแพลตฟอร์ม Android iOS JavaScript

หน้านี้แสดงวิธีเพิ่มชุดข้อมูลลงในแผนที่และใช้การจัดรูปแบบ

ภาพหน้าจอแสดงข้อมูลรูปหลายเหลี่ยมที่มีการจัดรูปแบบ

ข้อกำหนดเบื้องต้น

คุณควรมีรหัสแผนที่และรูปแบบแผนที่ รวมถึงรหัสชุดข้อมูลก่อนดำเนินการต่อ

เชื่อมโยงรหัสชุดข้อมูลกับรูปแบบแผนที่

ในการจัดรูปแบบคุณลักษณะของชุดข้อมูล ให้ใช้ฟังก์ชันรูปแบบกับ เลเยอร์ฟีเจอร์ชุดข้อมูลของแผนที่ ระบบจะสร้างเลเยอร์ฟีเจอร์ชุดข้อมูลเมื่อคุณ เชื่อมโยงชุดข้อมูลกับรูปแบบแผนที่

หากต้องการเชื่อมโยงชุดข้อมูลกับรูปแบบแผนที่ ให้ทำดังนี้

  1. ใน Google Cloud Console ให้ไปที่หน้าชุดข้อมูล
  2. คลิกชื่อชุดข้อมูล หน้ารายละเอียดชุดข้อมูลจะปรากฏขึ้น
  3. คลิกแท็บแสดงตัวอย่าง
  4. ในส่วนรูปแบบแผนที่ที่เกี่ยวข้อง ให้คลิก เพิ่มรูปแบบแผนที่
    ภาพหน้าจอของปุ่ม "เพิ่มรูปแบบแผนที่"
  5. คลิกช่องทําเครื่องหมายสําหรับรูปแบบแผนที่ที่ต้องการเชื่อมโยง แล้วคลิก บันทึก

นำรูปแบบไปใช้กับชุดข้อมูล

วิธีใช้รูปแบบกับชุดข้อมูล

  1. สร้างฟังก์ชันโรงงานสไตล์ที่นำองค์ประกอบ FeatureLayer.StyleFactory ของ Google ฟังก์ชันนี้จะกำหนดตรรกะการจัดรูปแบบสำหรับชุดข้อมูล

  2. โทร FeatureLayer.setFeatureStyle() เพื่อใช้ฟังก์ชันโรงงานรูปแบบกับแต่ละคุณลักษณะในชุดข้อมูล

สร้างฟังก์ชันเริ่มต้นสไตล์

ฟังก์ชันโรงงานรูปแบบจะใช้กับทุกฟีเจอร์ในชุดข้อมูล ตามเวลาที่คุณกำหนดฟังก์ชันในเลเยอร์ของจุดสนใจ ฟังก์ชันนี้ต้อง ส่งคืน FeatureStyle ที่ระบุวิธีจัดรูปแบบรูปหลายเหลี่ยม

หากรูปแบบแสดงผล null เป็นค่าเริ่มต้น ฟีเจอร์ที่ระบุจะไม่แสดงผล สำหรับข้อมูลเพิ่มเติม โปรดดูนำการจัดรูปแบบออกจากเลเยอร์

Maps SDK สำหรับ Android ผ่านการรับรอง Feature เป็นฟังก์ชันโรงงานรูปแบบ อินสแตนซ์ Feature แสดงฟังก์ชัน ข้อมูลเมตาของฟีเจอร์ ซึ่งให้สิทธิ์คุณเข้าถึงข้อมูลเมตาในโรงงานสไตล์

ฟังก์ชันค่าเริ่มต้นสำหรับรูปแบบควรแสดงผลลัพธ์ที่สอดคล้องกันเสมอเมื่อ ใช้แล้ว ตัวอย่างเช่น หากคุณต้องการสุ่มสีชุดคุณลักษณะ ส่วนแบบสุ่มไม่ควรอยู่ในฟังก์ชันสไตล์ฟีเจอร์ ทำให้เกิดผลลัพธ์ที่ไม่ต้องการ

เนื่องจากฟังก์ชันนี้จะทำงานทับทุกฟีเจอร์ในเลเยอร์ การเพิ่มประสิทธิภาพจึง เป็นอย่างมาก เพื่อหลีกเลี่ยงไม่ให้ส่งผลต่อเวลาในการแสดงผล FeatureLayer.setFeatureStyle(null)เมื่อไม่มีการใช้งานเลเยอร์ฟีเจอร์แล้ว

คุณยังเรียกใช้ FeatureLayer.getDatasetId() เพื่อรับรหัสของชุดข้อมูลได้ด้วย

ตั้งค่าเส้นโครงร่าง สีเติม และรัศมีสำหรับจุด

เมื่อจัดรูปแบบฟีเจอร์ในฟังก์ชันเริ่มต้นของรูปแบบ คุณสามารถตั้งค่าฟังก์ชันต่อไปนี้

  • สีเส้นโครงร่างและความทึบแสงของเส้นขอบตามที่กำหนดโดยแท็ก Color ค่าเริ่มต้นคือโปร่งใส (Color.TRANSPARENT)

  • ความกว้างเส้นโครงร่างของเส้นขอบในหน่วยพิกเซลของหน้าจอ ค่าเริ่มต้นคือ 2

  • เติมสีและความทึบแสงตามที่กำหนดโดยองค์ประกอบ Color ค่าเริ่มต้นคือโปร่งใส (Color.TRANSPARENT)

  • รัศมีของจุดของจุดสนใจระหว่าง 0 ถึง 128 พิกเซล

ใช้กฎรูปแบบอย่างง่าย

วิธีที่ง่ายที่สุดในการจัดรูปแบบฟีเจอร์คือการกำหนด FeatureLayer.StyleFactory ซึ่งจะสร้างออบเจ็กต์ FeatureStyle ที่เหมือนกันเสมอ โดยไม่คำนึงถึง ใช้ตัวเลือกรูปแบบฟีเจอร์กับเลเยอร์ฟีเจอร์ชุดข้อมูลโดยตรง หรือใช้ ร่วมกับ FeatureStyleFunction

ใช้กฎรูปแบบการประกาศ

คุณจะตั้งกฎรูปแบบได้โดยประกาศตามแอตทริบิวต์ฟีเจอร์ และนำไปใช้กับชุดข้อมูลทั้งหมด คุณส่งคืนเงินจำนวน null ได้จาก ฟังก์ชันการจัดรูปแบบ เช่น หากต้องการให้ชุดย่อยของจุดสนใจยังคงอยู่ ไม่ปรากฏ

เช่น ใช้เมธอด DatasetFeature.getDatasetAttributes() เพื่อแสดงผล Map<String,String> ของแอตทริบิวต์ชุดข้อมูลสำหรับฟีเจอร์ จากนั้นคุณจะสามารถ ปรับแต่งการจัดรูปแบบของคุณลักษณะตามแอตทริบิวต์

ตัวอย่างนี้กำหนดค่าของ "highlightColor" ของแต่ละแอตทริบิวต์ ของชุดข้อมูลเพื่อควบคุมการจัดรูปแบบ

Kotlin

// Get the dataset feature, so we can work with all of its attributes.
val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }

Java

// Get the dataset feature, so we can work with all of its attributes.
DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }

ใช้รูปแบบกับเลเยอร์ฟีเจอร์ของชุดข้อมูล

ตัวอย่างนี้ใช้ฟังก์ชันโรงงานรูปแบบกับรูปหลายเหลี่ยมในชุดข้อมูล ของฟีเจอร์ ฟังก์ชันจากโรงงานของรูปแบบจะใช้รูปแบบสีเติมและเส้นโครงร่างที่กำหนดเอง กับรูปหลายเหลี่ยม:

  1. หากคุณยังไม่ได้ดำเนินการ ให้ทำตามขั้นตอนใน เริ่มต้นใช้งาน เพื่อสร้างรหัสแผนที่และรูปแบบแผนที่ใหม่ อย่าลืมเปิดใช้ชุดข้อมูล ของฟีเจอร์

  2. รับการอ้างอิงเลเยอร์ฟีเจอร์ชุดข้อมูลเมื่อแผนที่เริ่มต้น

    Kotlin

    private var datasetLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
    // Apply style factory function to DATASET layer. styleDatasetsLayer() }

    Java

    private FeatureLayer datasetLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
    // Apply style factory function to DATASET layer. styleDatasetsLayer(); }

  3. สร้างฟังก์ชันเริ่มต้นสไตล์แล้วใช้กับชุดข้อมูล ของฟีเจอร์

    ตัวอย่างต่อไปนี้ใช้การเติมสีและเส้นโครงร่างเดียวกันกับฟีเจอร์ทั้งหมด ในชุดข้อมูล

    Kotlin

    private fun styleDatasetsLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
    return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
    // Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }

    Java

    private void styleDatasetsLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
    return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2F) .build(); } return null; };
    // Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }

นำการจัดรูปแบบออกจากเลเยอร์

หากต้องการนำการจัดรูปแบบออกจากเลเยอร์ ให้เรียก FeatureLayer.setFeatureStyle(null)

คุณยังส่งคืน null จากโรงงานผลิตสไตล์ของคุณได้ด้วย เช่น หาก ต้องการให้คุณลักษณะบางส่วนยังคงมองไม่เห็น