如何将 e.latlng 存储到数组中:传单
How to store e.latlng into array : leaflet
我正在使用传单 api,用户可以在其中将标记放在地图上。我制作了一个用于放置标记的自定义按钮。
我愿意在这些标记之间画线,即使用
L.polylines()
但由于我是 javascript 和传单的新手,所以我不能
了解如何将这些 latlng 点传递给数组,稍后将是
在这些函数中使用。对于初始工作,我已经通过了静态
坐标(按要求工作)。
L.easyButton('fa-link', function () {
var secureThisArea = [[-81, 100.75], [-76.50, 245.75], [-145.50, 184.25], [-128, 311.75]];
map.on('click', function fencePlace(e) {
L.marker([-81, 100.75], { icon: fenceIcon, draggable: true }).bindPopup("this is first").addTo(map);
L.marker([-76.50, 245.75], { icon: fenceIcon, draggable: true }).bindPopup("this is second").addTo(map);
L.marker([-145.50, 184.25], { icon: fenceIcon, draggable: true }).bindPopup("this is third").addTo(map);
L.marker([-128, 311.75], { icon: fenceIcon, draggable: true }).bindPopup("this is fourth").addTo(map);
L.polyline(secureThisArea).addTo(map);
});
}).addTo(map);
向数组添加另一个值很容易,例如:
secureThisArea.push([-81, 100.75]);
您可以在 Mozilla Developer Network.
找到更多详细信息(以及其他 JavaScript 相关的内容)
如果你想使用标记对象的坐标,你可以通过以下方式获得:
var myMarker = L.marker([-81, 100.75], { icon: fenceIcon, draggable: true }),
latLng = null;
latLng = myMarker.getLatLng();
如果我对你的理解正确,你想在点击时创建标记并通过多段线连接它们。这很容易做到,在代码中加上注释来解释:
// Create new empty polyline and add it to the map
var polyline = new L.Polyline([]).addTo(map);
// Handle map click event
map.on('click', function(event) {
// New marker on coordinate, add it to the map
new L.Marker(event.latlng).addTo(map);
// Add coordinate to the polyline
polyline.addLatLng(event.latlng);
});
现在,如果您想将所有坐标添加到多段线,您可以使用 L.Polyline
的 getLatLngs
方法,其中 returns 一个 L.LatLng
对象数组.
我正在使用传单 api,用户可以在其中将标记放在地图上。我制作了一个用于放置标记的自定义按钮。
我愿意在这些标记之间画线,即使用
L.polylines()
但由于我是 javascript 和传单的新手,所以我不能
了解如何将这些 latlng 点传递给数组,稍后将是
在这些函数中使用。对于初始工作,我已经通过了静态
坐标(按要求工作)。
L.easyButton('fa-link', function () {
var secureThisArea = [[-81, 100.75], [-76.50, 245.75], [-145.50, 184.25], [-128, 311.75]];
map.on('click', function fencePlace(e) {
L.marker([-81, 100.75], { icon: fenceIcon, draggable: true }).bindPopup("this is first").addTo(map);
L.marker([-76.50, 245.75], { icon: fenceIcon, draggable: true }).bindPopup("this is second").addTo(map);
L.marker([-145.50, 184.25], { icon: fenceIcon, draggable: true }).bindPopup("this is third").addTo(map);
L.marker([-128, 311.75], { icon: fenceIcon, draggable: true }).bindPopup("this is fourth").addTo(map);
L.polyline(secureThisArea).addTo(map);
});
}).addTo(map);
向数组添加另一个值很容易,例如:
secureThisArea.push([-81, 100.75]);
您可以在 Mozilla Developer Network.
找到更多详细信息(以及其他 JavaScript 相关的内容)如果你想使用标记对象的坐标,你可以通过以下方式获得:
var myMarker = L.marker([-81, 100.75], { icon: fenceIcon, draggable: true }),
latLng = null;
latLng = myMarker.getLatLng();
如果我对你的理解正确,你想在点击时创建标记并通过多段线连接它们。这很容易做到,在代码中加上注释来解释:
// Create new empty polyline and add it to the map
var polyline = new L.Polyline([]).addTo(map);
// Handle map click event
map.on('click', function(event) {
// New marker on coordinate, add it to the map
new L.Marker(event.latlng).addTo(map);
// Add coordinate to the polyline
polyline.addLatLng(event.latlng);
});
现在,如果您想将所有坐标添加到多段线,您可以使用 L.Polyline
的 getLatLngs
方法,其中 returns 一个 L.LatLng
对象数组.