Trong tài liệu cho tờ rơi tại đây: http://leafletjs.com/reference-1.2.0.html#circlemarker nó nói rằng CircleMaker mở rộng Vòng kết nối và cũng giống như vậy, ngoại trừ bán kính được chỉ định bằng pixel thay vì tính bằng mét. kích thước không đổi ngay cả khi bạn phóng to bản đồ.Tờ rơi: Vòng tròn hoạt động khác với CircleMarker
Tuy nhiên, tôi cần có Vòng kết nối vì tôi đang cố gắng vẽ vòng tròn bán kính 100m trên bản đồ. Để làm điều này, tôi sử dụng đoạn mã sau:
var geojsonLayer = new L.GeoJSON(null,{
pointToLayer: function (latlng){
return new L.CircleMarker(latlng, {
radius: 5,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8,
});
}});
map.addLayer(osm);
map.addLayer(geojsonLayer);
geojsonLayer.addGeoJSON(jsonExample);
này hoạt động hoàn hảo, tuy nhiên, nếu tôi thay đổi mã để sử dụng "Circle" thay vì CircleMaker toàn bộ bản đồ không tải, và tôi nhận được một lỗi javascript:
Error: Error: Invalid LatLng object: (56.229917, NaN)
tôi có thể sửa lỗi này bằng tiền lọc GeoJSON để loại bỏ những điểm mà thiếu cả độ và vĩ độ, nhưng tôi đang bối rối: Circle và CircleMaker cả xác định rằng họ mất một LatLng-đối tượng như đặc điểm kỹ thuật của điểm trung tâm, tôi không hiểu làm thế nào một đối tượng LatLng nhất định có thể hợp lệ làm điểm trung tâm cho một CircleMarker, nhưng không hợp lệ nếu được sử dụng làm điểm trung tâm cho một Vòng tròn.
Tôi có nhìn thấy một cái gì đó hiển nhiên, hoặc đây chỉ là một điểm yếu và/hoặc lỗi trong Leaflet mà tôi sẽ phải làm việc xung quanh?
Tuyệt vời! Cảm ơn bạn. Điều này có vẻ đáng giá, vì vậy tôi đoán rằng bản vá đó nên được gửi đến các nhà phát triển Leaflet. – Agrajag
Điều gì đã xảy ra với điều này? –
Mọi cập nhật về điều này? – kuanb