การสร้าง Google Map Mashup: คู่มือทีละขั้นตอน
หากคุณเคยต้องการที่จะเห็นภาพหลายสถานที่ในแผนที่เดียว คุณโชคดีแล้ว! การสร้าง Google Map mashup ง่ายกว่าที่คุณคิด ในบล็อกโพสต์นี้ เราจะอธิบายถึง วิธีที่ง่ายที่สุด ในการทำให้สถานที่หลายแห่งปรากฏบน Google Map ด้วยพิน เมื่อจบโพสต์นี้คุณจะสามารถสร้างแผนที่ที่มีปฏิสัมพันธ์ได้ด้วยตัวเองในไม่กี่ขั้นตอน
ปัญหา: วิธีการทำแผนที่หลายสถานที่
ลองนึกภาพว่าคุณมีรายชื่อสถานที่ดังนี้:
- El Cerrito, CA
- Corvallis, OR
- Morganton, NC
- New York, NY
- San Diego, CA
ความท้าทายคือการสร้าง Google Map ที่มีพินทำเครื่องหมายแต่ละสถานที่เหล่านี้ มาเริ่มต้นว่าคุณจะทำสิ่งนี้ได้อย่างไร
เริ่มต้น
ก่อนที่เราจะเริ่มการเขียนโค้ด ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Google Maps เบื้องต้นในโปรเจ็กต์ของคุณแล้ว และคุณมี Google Maps API Key กุญแจนี้มีความสำคัญสำหรับการเข้าถึงฟังก์ชันของ Google Maps
โครงสร้าง HTML ตัวอย่าง
นี่คือโครงสร้างพื้นฐานเพื่อเริ่มต้น:
<head>
<script
type="text/javascript"
src="http://maps.google.com/maps?file=api&v=1&key=YOUR_API_KEY">
</script>
</head>
<body onload="createMap()" onunload="GUnload()">
<div id="map" style="width: 600px; height: 400px;"></div>
</body>
ขั้นตอนที่ 1: ตั้งค่าแผนที่
ก่อนอื่นเราต้องเริ่มต้นแผนที่ นี่คือฟังก์ชันง่ายๆ เพื่อเริ่มต้น:
function createMap() {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.44, -122.14), 14);
}
คำอธิบาย
- GMap2: นี้ใช้ในการสร้างแผนที่ใหม่
- setCenter: ตั้งศูนย์กลางแผนที่ไปยังละติจูดและลองจิจูดที่ระบุ
ขั้นตอนที่ 2: สร้างพินสำหรับแต่ละสถานที่
เพื่อแสดงสถานที่บนแผนที่ เราจะสร้างพินโดยใช้พิกัดละติจูดและลองจิจูด นี่คือวิธีการ:
var where = new GLatLng(37.925243, -122.307358); // El Cerrito, CA
var marker = new GMarker(where); // สร้างพิน
map.setCenter(where); // ตั้งศูนย์กลางแผนที่ที่พิน
map.addOverlay(marker); // เพิ่มพินไปยังแผนที่
การเพิ่มสถานที่เพิ่มเติม
คุณจะต้องตั้งค่าพิกัด สำหรับแต่ละเมืองด้วยตนเอง ซึ่งอาจทำได้ยาก แทนที่จะทำเช่นนั้น ให้พิจารณาการใช้บริการ Geocoder ของ Google เพื่อดึงละติจูดและลองจิจูดโดยอัตโนมัติสำหรับแต่ละที่อยู่
ขั้นตอนที่ 3: ใช้ Geocoder
แทนที่จะค้นหาละติจูดและลองจิจูดด้วยตนเอง ให้ใช้สคริปต์นี้:
var address = "El Cerrito, CA";
var geocoder = new GClientGeocoder();
geocoder.getLatLng(address, function(point) {
if (point) {
map.clearOverlays(); // ลบพินก่อนหน้า
map.addOverlay(new GMarker(point)); // เพิ่มพินใหม่
map.setCenter(point, 10); // ตั้งศูนย์กลางและซูมแผนที่
}
});
คำอธิบาย
- GClientGeocoder: บริการนี้ช่วยในการแปลงที่อยู่ให้อยู่ในพิกัดทางภูมิศาสตร์
- getLatLng: ดึงละติจูดและลองจิจูดตามที่อยู่
ขั้นตอนที่ 4: ทำการวนรอบผ่านสถานที่ทั้งหมด
ในที่สุด หากคุณกำลังทำแผนที่หลายสถานที่ ให้เก็บสถานที่ในอาร์เรย์และทำการวนรอบเพื่อสร้างพินแต่ละอัน:
var locations = ["El Cerrito, CA", "Corvallis, OR", "Morganton, NC", "New York, NY", "San Diego, CA"];
locations.forEach(function(location) {
geocoder.getLatLng(location, function(point) {
if (point) {
map.addOverlay(new GMarker(point));
}
});
});
สรุป
การสร้าง Google Map mashup ด้วยพินสำหรับสถานที่ต่างๆ ไม่เพียงแค่ตรงไปตรงมา แต่ยังเป็นวิธีที่ดีในการแสดงข้อมูล ด้วยการตั้งค่าและโค้ดเพียงเล็กน้อย คุณสามารถเปลี่ยนรายการสถานที่ใดๆ ให้กลายเป็นประสบการณ์เชิงโต้ตอบได้
สรุปด่วน:
- ตั้งค่า Google Maps API ของคุณ
- เริ่มต้นแผนที่
- สร้างพินด้วยการทำ GeoCoding สำหรับความถูกต้อง
- ทำการวนรอบผ่านสถานที่หลายแห่งได้อย่างง่ายดาย
ตอนนี้ถึงเวลาของคุณที่จะสร้าง Google Map mashup ของคุณเอง! สนุกกับการเขียนโค้ด!