LeafletJS - เวกเตอร์เลเยอร์
ในบทที่แล้วเราได้เรียนรู้วิธีใช้เครื่องหมายใน Leaflet นอกจากเครื่องหมายแล้วเรายังสามารถเพิ่มรูปทรงต่างๆเช่นวงกลมรูปหลายเหลี่ยมสี่เหลี่ยมโพลีไลน์เป็นต้นในบทนี้เราจะพูดถึงวิธีการใช้รูปทรงที่ Google Maps มีให้
โพลีไลน์
ในการวาดภาพซ้อนทับเส้นหลายเส้นบนแผนที่โดยใช้ไลบรารี Leaflet JavaScript ให้ทำตามขั้นตอนด้านล่าง -
Step 1 - สร้างไฟล์ Mapวัตถุโดยส่งผ่านองค์ประกอบ< div > (สตริงหรือวัตถุ) และตัวเลือกแผนที่ (ไม่บังคับ)
Step 2 - สร้างไฟล์ Layer ออบเจ็กต์โดยส่ง URL ของไทล์ที่ต้องการ
Step 3 - เพิ่มวัตถุเลเยอร์ลงในแผนที่โดยใช้ไฟล์ addLayer() วิธีการของ Map ชั้นเรียน.
Step 4 - สร้างไฟล์ latlangs ตัวแปรเพื่อยึดจุดที่จะวาดเส้นหลายเส้นดังที่แสดงด้านล่าง
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.000538, 81.804034],
[17.686816, 83.218482]
];
Step 5 - สร้างโพลีไลน์โดยใช้ไฟล์ L.polyline(). ในการวาดเส้นหลายเส้นให้ส่งตำแหน่งที่ตั้งเป็นตัวแปรและตัวเลือกเพื่อระบุสีของเส้น
// Creating a poly line
var polyline = L.polyline(latlngs, {color: 'red'});
Step 6 - เพิ่มเส้นตรงลงในแผนที่โดยใช้ไฟล์ addTo() วิธีการของ Polyline ชั้นเรียน.
// Adding to poly line to map
polyline.addTo(map);
ตัวอย่าง
ต่อไปนี้เป็นรหัสที่วาดเส้นโพลีไลน์ซึ่งครอบคลุมเมืองไฮเดอราบัดวิชัยวาทะราชมะเหิงดราวารามและวิสาขปัตนัม (อินเดีย)
DOCTYPE html>
<html>
<head>
<title>Leaflet Poly lines</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width:900px; height:580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [16.506174, 80.648015],
zoom: 7
}
// Creating a map object
var map = new L.map('map', mapOptions);
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
// Adding layer to the map
map.addLayer(layer);
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.000538, 81.804034],
[17.686816, 83.218482]
];
// Creating a poly line
var polyline = L.polyline(latlngs, {color: 'red'});
// Adding to poly line to map
polyline.addTo(map);
</script>
</body>
</html>
สร้างผลลัพธ์ต่อไปนี้
รูปหลายเหลี่ยม
ในการวาดรูปหลายเหลี่ยมซ้อนทับบนแผนที่โดยใช้ไลบรารี Leaflet JavaScript ให้ทำตามขั้นตอนด้านล่าง -
Step 1 - สร้างไฟล์ Mapวัตถุโดยส่งผ่านองค์ประกอบ< div > (สตริงหรือวัตถุ) และตัวเลือกแผนที่ (ไม่บังคับ)
Step 2 - สร้างไฟล์ Layer ออบเจ็กต์โดยส่ง URL ของไทล์ที่ต้องการ
Step 3 - เพิ่มวัตถุเลเยอร์ลงในแผนที่โดยใช้ไฟล์ addLayer() วิธีการของ Map ชั้นเรียน.
Step 4 - สร้างไฟล์ latlangs ตัวแปรเพื่อเก็บจุดที่จะวาดรูปหลายเหลี่ยม
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.686816, 83.218482]
];
Step 5 - สร้างรูปหลายเหลี่ยมโดยใช้ไฟล์ L.polygon(). ส่งตำแหน่ง / จุดเป็นตัวแปรเพื่อวาดรูปหลายเหลี่ยมและตัวเลือกเพื่อระบุสีของรูปหลายเหลี่ยม
// Creating a polygon
var polygon = L.polygon(latlngs, {color: 'red'});
Step 6 - เพิ่มรูปหลายเหลี่ยมลงในแผนที่โดยใช้ไฟล์ addTo() วิธีการของ Polygon ชั้นเรียน.
// Adding to polygon to map
polygon.addTo(map);
ตัวอย่าง
ต่อไปนี้เป็นรหัสสำหรับวาดรูปหลายเหลี่ยมที่ครอบคลุมเมืองไฮเดอราบัดวิชัยวาทะและวิสาขปัตนัม (อินเดีย)
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Polygons</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width:900px; height:580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [16.506174, 80.648015],
zoom: 7
}
// Creating a map object
var map = new L.map('map', mapOptions);
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
// Adding layer to the map
map.addLayer(layer);
// Creating latlng object
var latlngs = [
[17.385044, 78.486671],
[16.506174, 80.648015],
[17.686816, 83.218482]
];
// Creating a polygon
var polygon = L.polygon(latlngs, {color: 'red'});
// Adding to polygon to map
polygon.addTo(map);
</script>
</body>
</html>
สร้างผลลัพธ์ต่อไปนี้ -
สี่เหลี่ยมผืนผ้า
ในการวาดสี่เหลี่ยมผืนผ้าซ้อนทับบนแผนที่โดยใช้ไลบรารี Leaflet JavaScript ให้ทำตามขั้นตอนด้านล่าง
Step 1 - สร้างไฟล์ Mapวัตถุโดยส่งผ่านองค์ประกอบ< div > (สตริงหรือวัตถุ) และตัวเลือกแผนที่ (ไม่บังคับ)
Step 2 - สร้างไฟล์ Layer ออบเจ็กต์โดยส่ง URL ของไทล์ที่ต้องการ
Step 3 - เพิ่มวัตถุเลเยอร์ลงในแผนที่โดยใช้ไฟล์ addLayer() วิธีการของ Map ชั้นเรียน.
Step 4 - สร้างตัวแปร latlangs เพื่อยึดจุดที่จะวาดรูปสี่เหลี่ยมผืนผ้าบนแผนที่
// Creating latlng object
var latlngs = [
[17.342761, 78.552432],
[16.396553, 80.727725]
];
Step 5 - สร้างสี่เหลี่ยมผืนผ้าโดยใช้ไฟล์ L.rectangle()ฟังก์ชัน ส่งตำแหน่ง / จุดเป็นตัวแปรเพื่อวาดรูปสี่เหลี่ยมผืนผ้าและrectangleOptions เพื่อระบุสีและน้ำหนักของสี่เหลี่ยมผืนผ้า
// Creating rectOptions
var rectOptions = {color: 'Red', weight: 1}
// Creating a rectangle
var rectangle = L.rectangle(latlngs, rectOptions);
Step 6 - เพิ่มสี่เหลี่ยมผืนผ้าลงในแผนที่โดยใช้ไฟล์ addTo() วิธีการของ Polygon ชั้นเรียน.
// Adding to rectangle to map
rectangle.addTo(map);
ตัวอย่าง
ต่อไปนี้เป็นรหัสสำหรับวาดรูปสี่เหลี่ยมผืนผ้าบนแผนที่โดยใช้ไลบรารี Leaflet JavaScript
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Rectangle</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width:900px; height:580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [16.506174, 80.648015],
zoom: 7
}
var map = new L.map('map', mapOptions); // Creating a map object
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
map.addLayer(layer); // Adding layer to the map
// Creating latlng object
var latlngs = [
[17.342761, 78.552432],
[16.396553, 80.727725]
];
var rectOptions = {color: 'Red', weight: 1} // Creating rectOptions
// Creating a rectangle
var rectangle = L.rectangle(latlngs, rectOptions);
rectangle.addTo(map); // Adding to rectangle to map
</script>
</body>
</html>
สร้างผลลัพธ์ต่อไปนี้ -
วงกลม
ในการวาดวงกลมซ้อนทับบนแผนที่โดยใช้ไลบรารี Leaflet JavaScript ให้ทำตามขั้นตอนด้านล่าง
Step 1 - สร้างไฟล์ Mapวัตถุโดยส่งผ่านองค์ประกอบ< div > (สตริงหรือวัตถุ) และตัวเลือกแผนที่ (ไม่บังคับ)
Step 2 - สร้างไฟล์ Layer ออบเจ็กต์โดยส่ง URL ของไทล์ที่ต้องการ
Step 3 - เพิ่มวัตถุเลเยอร์ลงในแผนที่โดยใช้ไฟล์ addLayer() วิธีการของ Map ชั้นเรียน.
Step 4 - สร้างตัวแปร latlangs เพื่อยึดตรงกลางของวงกลมดังที่แสดงด้านล่าง
// Center of the circle
var circleCenter = [17.385044, 78.486671];
Step 5 - สร้างตัวแปร circleOptions เพื่อระบุค่าให้กับสีตัวเลือก FillColor และ FillOpacity ดังที่แสดงด้านล่าง
// Circle options
var circleOptions = {
color: 'red',
fillColor: '#f03',
fillOpacity: 0
}
Step 6 - สร้างวงกลมโดยใช้ L.circle(). ผ่านศูนย์กลางของวงกลมรัศมีและตัวเลือกวงกลมไปยังฟังก์ชันนี้
// Creating a circle
var circle = L.circle(circleCenter, 50000, circleOptions);
Step 7 - เพิ่มวงกลมที่สร้างไว้ด้านบนลงในแผนที่โดยใช้ addTo() วิธีการของ Polyline ชั้นเรียน.
// Adding circle to the map
circle.addTo(map);
ตัวอย่าง
ต่อไปนี้เป็นรหัสสำหรับวาดวงกลมโดยมีพิกัดของเมืองไฮเดอราบาดเป็นรัศมี
<!DOCTYPE html>
<html>
<head>
<title>Leaflet Circle</title>
<link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
<script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>
<body>
<div id = "map" style = "width: 900px; height: 580px"></div>
<script>
// Creating map options
var mapOptions = {
center: [17.385044, 78.486671],
zoom: 7
}
var map = new L.map('map', mapOptions); // Creating a map object
// Creating a Layer object
var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
map.addLayer(layer); // Adding layer to the map
var circleCenter = [17.385044, 78.486671]; // Center of the circle
// Circle options
var circleOptions = {
color: 'red',
fillColor: '#f03',
fillOpacity: 0
}
// Creating a circle
var circle = L.circle(circleCenter, 50000, circleOptions);
circle.addTo(map); // Adding circle to the map
</script>
</body>
</html>>
สร้างผลลัพธ์ต่อไปนี้ -