ตั้งแต่วันที่ 21 กุมภาพันธ์ 2024 (v3.56) เราจะเลิกใช้งาน google.maps.Marker เราขอแนะนำให้คุณเปลี่ยนไปใช้คลาส google.maps.marker.AdvancedMarkerElement ใหม่ เครื่องหมายขั้นสูงมีการปรับปรุงที่สำคัญเมื่อเทียบกับคลาส google.maps.Marker เดิม
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเลิกใช้งานนี้
หากต้องการอัปเดตตัวทำเครื่องหมายเดิมให้เป็นตัวทำเครื่องหมายขั้นสูง ให้ทำตามขั้นตอนต่อไปนี้
- เพิ่มโค้ดเพื่อนำเข้าไลบรารีเครื่องหมาย (ดูขั้นตอนด้านล่าง)
- เปลี่ยน
google.maps.Markerเป็นgoogle.maps.marker.AdvancedMarkerElementหากคำสั่งนำเข้าประกาศAdvancedMarkerคุณสามารถละเว้นเส้นทางที่มีคุณสมบัติได้ - เพิ่มรหัสแผนที่ลงในโค้ดการเริ่มต้นแผนที่ เช่น
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',
});
หลังการย้ายข้อมูล
// Import the needed libraries.
// Not required if the legacy direct script loading tag is in use.
await google.maps.importLibrary('maps') as google.maps.MapsLibrary;
await google.maps.importLibrary('marker') as google.maps.MarkerLibrary;
// 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/Ayers Rock',
});
สำรวจฟีเจอร์เครื่องหมายขั้นสูง
คุณสามารถปรับแต่งเครื่องหมายขั้นสูงในรูปแบบที่ไม่เคยทำได้มาก่อน ตอนนี้คุณสามารถปรับขนาด (สเกล) ของเครื่องหมาย รวมถึงเปลี่ยนสีพื้นหลัง เส้นขอบ และกลีฟได้ การใช้รูปภาพกราฟิกที่กำหนดเองทำได้ง่ายขึ้น และตอนนี้คุณสามารถสร้างเครื่องหมายที่กำหนดเองโดยใช้ HTML และ CSS ได้แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับทุกสิ่งที่คุณทำได้ด้วยเครื่องหมายขั้นสูง
- เพิ่มเครื่องหมายลงในแผนที่
- การปรับแต่งเครื่องหมายพื้นฐาน
- สร้างเครื่องหมายด้วยกราฟิก
- สร้างเครื่องหมายด้วย HTML และ CSS
- ควบคุมลักษณะการทำงานเมื่อเกิดการชนกัน ความสูง และระดับการเข้าถึง
- ทำให้เครื่องหมายคลิกได้และเข้าถึงได้