ย้ายข้อมูลไปยังเครื่องหมายขั้นสูง

ในวันที่ 21 กุมภาพันธ์ 2024 (เวอร์ชัน 3.56) เราจะเลิกใช้งาน google.maps.Marker เราขอแนะนำให้คุณเปลี่ยนไปใช้google.maps.marker.AdvancedMarkerElementคลาสใหม่ เครื่องหมายขั้นสูงมีการปรับปรุงอย่างมากเมื่อเทียบกับคลาส google.maps.Marker รุ่นเดิม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเลิกใช้งานนี้

หากต้องการอัปเดตเครื่องหมายเดิมให้เป็นเครื่องหมายขั้นสูง ให้ทำตามขั้นตอนต่อไปนี้

  1. เพิ่มโค้ดเพื่อนําเข้าคลังเครื่องหมาย โปรดทราบว่าเครื่องหมายเวอร์ชันก่อนหน้า (google.maps.Marker) ไม่จำเป็นต้องทำตามข้อกำหนดนี้
  2. เปลี่ยน google.maps.Marker เป็น google.maps.marker.AdvancedMarkerElement
  3. เพิ่มรหัสแผนที่ลงในโค้ดการเริ่มต้นแผนที่ เช่น ใช้ mapId: 'DEMO_MAP_ID' เพื่อวัตถุประสงค์ในการทดสอบหากคุณยังไม่มีรหัสแผนที่

เพิ่มคลังเครื่องหมายขั้นสูง

วิธีการที่คุณใช้โหลดไลบรารีจะขึ้นอยู่กับวิธีที่หน้าเว็บโหลด Maps JavaScript API

  • หากหน้าเว็บใช้การโหลดสคริปต์แบบไดนามิก ให้เพิ่มคลังเครื่องหมายและนําเข้า AdvancedMarkerElement (และ PinElement หากต้องการ) ขณะรันไทม์ ดังที่แสดงที่นี่

    const { AdvancedMarkerElement, PinElement } = await google.maps.importLibrary("marker");
  • หากหน้าเว็บใช้แท็กการโหลดสคริปต์โดยตรงแบบเดิม ให้เพิ่ม libraries=marker ลงในสคริปต์การโหลด ดังที่แสดงในข้อมูลโค้ดต่อไปนี้

    <script
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&v=weekly&libraries=marker"
    defer
    ></script>

ดูข้อมูลเพิ่มเติมเกี่ยวกับการโหลด Maps JavaScript API

ตัวอย่าง

ตัวอย่างโค้ดต่อไปนี้แสดงโค้ดสำหรับการเพิ่มตัวทำเครื่องหมายแบบเดิม ตามด้วยโค้ดสำหรับตัวอย่างเดียวกันที่ใช้ตัวทำเครื่องหมายขั้นสูง

ก่อนย้ายข้อมูล

// The location of Uluru
const position = { lat: -25.344, lng: 131.031 };

const map = new google.maps.Map(document.getElementById("map"), {
  zoom: 4,
  center: position,
});

// The marker, positioned at Uluru
const marker = new google.maps.Marker({
  map: map,
  position: position,
  title: 'Uluru',
});

หลังการย้ายข้อมูล

  // The location of Uluru
  const position = { lat: -25.344, lng: 131.031 };

  const map = new google.maps.Map(document.getElementById("map"),  {
    zoom: 4,
    center: position,
    mapId: "DEMO_MAP_ID", // Map ID is required for advanced markers.
  });

    // The advanced marker, positioned at Uluru
    const marker = new google.maps.marker.AdvancedMarkerElement({
        map,
        position: position,
        title: 'Uluru',
    });

สำรวจฟีเจอร์เครื่องหมายขั้นสูง

คุณสามารถปรับแต่งเครื่องหมายขั้นสูงในแบบที่ไม่เคยทำได้มาก่อน ตอนนี้คุณปรับขนาด (สเกล) ของเครื่องหมาย รวมถึงเปลี่ยนสีของพื้นหลัง เส้นขอบ และรูปอักขระได้แล้ว รูปภาพกราฟิกที่กำหนดเองใช้งานได้ง่ายขึ้น และตอนนี้คุณยังเขียนเครื่องหมายที่กำหนดเองโดยใช้ HTML และ CSS ได้ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับทุกสิ่งที่คุณทำได้ด้วยเครื่องหมายขั้นสูง