Vì vậy, tôi đã kiểm tra các câu hỏi trước đây về vấn đề này, tất cả đều liên quan đến V2, điều này không giúp được gì.Polyline của Google Maps - Làm thế nào để xóa nó?
Vì vậy, tôi tạo ra hai dấu, lưu chúng trong một mảng như đánh dấu [ "để"] và đánh dấu [ "từ"]
Và sau đó thêm chúng với điều này
function route(){
for(var key in markers) {
flightPlanCoordinates.push(markers[key].position);
}
flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
Brilliant. Nhưng. Tiếp theo thời gian tôi sử dụng nó (Với các dấu hiệu mới trong mảng) nó chỉ thêm một polyline có mà không cần loại bỏ trước đó. Tôi dường như đã thử tất cả mọi thứ, loại bỏ khỏi mảng đầu tiên, flightPath, setMap (null) và vv.
Cách chính xác để xóa dòng trước đó trước khi vẽ một dòng mới là gì?
EDIT: SOLVED Giải pháp
function route(){
var flightPlanCoordinates = [];
for(var key in markers) {
flightPlanCoordinates.push(markers[key].position);
}
if(flightPath) {
flightPath.setPath(flightPlanCoordinates);
} else {
flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
}
Lý do: flightPlanCoordinates cần phải được khởi tạo trong phạm vi, điều này resets các mảng mỗi khi nó được sử dụng, làm sạch nó ra đúng cách. (Cũng nhờ cho đầu vào dưới đây để làm cho đoạn code một chút đẹp hơn.
bạn có thể chia sẻ một liên kết hoạt động của dự án này? im làm một cái gì đó tương tự cho một hãng hàng không địa phương. – andufo