Trong API Google Maps phiên bản 2, tôi đã sử dụng map.clearOverlays()
để xóa điểm đánh dấu và vẽ lại.API Google Maps v3 - Cách xóa lớp phủ?
Tôi làm cách nào để sử dụng API Google Maps v3?
Cảm ơn
Trong API Google Maps phiên bản 2, tôi đã sử dụng map.clearOverlays()
để xóa điểm đánh dấu và vẽ lại.API Google Maps v3 - Cách xóa lớp phủ?
Tôi làm cách nào để sử dụng API Google Maps v3?
Cảm ơn
Xem here biết chi tiết về các tùy chọn khác nhau dành cho bạn, nhưng bây giờ bạn phải lặp qua các dấu hiệu và loại bỏ chúng riêng rẽ. code của bạn nên tìm một cái gì đó như thế này:
var markers = [];
function clearOverlays() {
while(markers.length) { markers.pop().setMap(null); }
markers.length = 0;
}
markers.push(marker);
google.maps.event.addListener(marker,"click",function(){});
Câu trả lời này đã bị gắn cờ để xóa vì đó là câu trả lời chỉ liên kết. Bạn có thể vui lòng mở rộng câu trả lời này để câu trả lời cho câu hỏi mà không yêu cầu người đọc nhấp vào trang web được liên kết không? – josliber
Đây là tốt nhất:
http://apitricks.blogspot.com/2010/02/clearoverlays-in-v3.html
Điều trong trường hợp liên kết chết:
clearOverlays() in V3
Không có clearOverlays () trong API v3. Một số thực hành đã được trình bày. Tôi nghĩ rằng đây là đơn giản nhất cho đến nay.
Đẩy tất cả các lớp phủ trong một mảng khi được tạo (như thường lệ). Mã sau sẽ xóa cả bản đồ và mảng:
phương thức pop() loại bỏ phần tử cuối cùng của mảng và trả về phần tử đó. 'while' giữ điều đó xảy ra miễn là có các phần tử trong mảng. Khi lớp phủ [0] không tồn tại nữa, nhiệm vụ được hoàn thành và mã sẽ tiếp tục.
GIẢI PHÁP RẤT TỐT! tôi đã có vấn đề thực hiện chức năng của bạn cho đến khi tôi lưu popline() èd polyline vào một đối tượng tạm thời đầu tiên: \t var arrayTemp = overlayArrayPolylineUpload.pop(); arrayTemp.setMap (null); –
Bạn có thể có một cái nhìn tại các tài liệu Google Maps vì nó hiển thị deleteOverLays đơn giản phương pháp http://code.google.com/apis/maps/documentation/javascript/overlays.html
// Deletes all markers in the array by removing references to them
function deleteOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
xóa khỏi bản đồ là HIDING, chứ không phải DELETING. các điểm đánh dấu vẫn tồn tại, nhưng bạn đã loại bỏ mảng giữ chúng. bạn phải setMap (null) sau đó thiết lập các điểm đánh dấu chính nó là null. http://code.google.com/apis/maps/documentation/javascript/overlays.html#RemovingOverlays –
Bạn có thể tìm thấy một ví dụ điển hình được cung cấp bởi Google tại đây: http://code.google.com/p/gmaps-samples-v3/source/browse/trunk/clear-all-overlays/clear-all-overlays.html
Về cơ bản các ý tưởng là xóa
tôi tìm thấy một giải pháp khác và nó hoạt động rất tốt nó sẽ loại bỏ tất cả các lớp phủ đang tồn tại trên bản đồ
gmap.overlayMapTypes.setAt(0, null);
khi GMap là đối tượng bản đồ của bạn
không hoạt động đối với tôi – malhal
Làm thế nào về điều này? Tôi không muốn sử dụng .setMap (null), bởi vì tôi không biết cách tốt hơn để bắt đầu lại polyShape.
polyShape = new google.maps.Polygon(
{
strokeColor : '#000000',
strokeOpacity : 0.3,
strokeWeight : 1,
fillColor : "#000000",
fillOpacity : 0.26,
geodesic : true
});
Sau đó .. lặp lại qua đường dẫn để xóa nó.
var path = new google.maps.MVCArray;
/**
* Delete all points inside Map
*/
function clearMap()
{
//clear markers
for (var i = 0; i < markers.length; i++)
{
markers[i].setMap(null);
}
markers = [];
//clear polygon, still finding more elegant way
while (polyShape.getPath().length)
{
path.removeAt(0);
}
}
có thể trùng lặp với [API Google Maps v3: Cách xóa tất cả điểm đánh dấu?] (Http: // stackoverflow.com/questions/1544739/google-maps-api-v3-cách-để-xóa-tất cả các điểm đánh dấu) – Praveen
Thực tế vì đó là bài đăng được liên kết với câu trả lời được chấp nhận. – Natim