Tôi đang sử dụng API bản đồ google v3. Tôi muốn vô hiệu hóa thao tác nhấp chuột trên mốc google/poi mặc định. Ví dụ: khi tôi phóng to UCLA, biểu tượng trường hiển thị (điều đó là tốt) nhưng tôi không muốn người dùng nhấp và xem chi tiết của vị trí đó. Tôi nên sử dụng chức năng API nào?vô hiệu hóa mốc có thể nhấp trên bản đồ google
Trả lời
Tôi đã gặp phải sự cố tương tự này. Google dường như gần đây đã thay đổi api của họ để làm cho nhãn bản đồ cơ sở "có thể nhấp" và chưa có lệnh gọi API đơn giản để vô hiệu hóa tính khả thi của họ. http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/f1ac9ad4da3606fe
Tôi muốn nhìn thấy google thêm một lựa chọn bản đồ đơn giản như thế này, nhưng than ôi nó chưa hề tồn tại
var opts = { clickableLabels:false };
var map = new maps.google.com.map(div,opts);
Các giải pháp sau đây hoạt động, nhưng vì nó dựa trên gạch bản đồ tùy chỉnh phong cách, bản đồ miễn phí được giới hạn (2.500 lượt tải bản đồ mỗi ngày) - See Google Maps FAQ.
function initialize() {
// For more details see
// http://code.google.com/apis/maps/documentation/javascript/styling.html
var noPOILabels = [
{
featureType: "poi",
elementType: "labels",
stylers: [ { visibility: "off" } ]
}
];
// Create a new StyledMapType object, passing it the array of styles,
// as well as the name to be displayed on the map type control.
var noPOIMapType = new google.maps.StyledMapType(noPOILabels,
{name: "NO POI"});
// Create a map object, and include the MapTypeId to add
// to the map type control.
var mapOptions = {
zoom: 11,
center: new google.maps.LatLng(55.6468, 37.581),
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'no_poi']
}
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
//Associate the styled map with the MapTypeId and set it to display.
map.mapTypes.set('no_poi', noPOIMapType);
map.setMapTypeId('no_poi');
}
Chỉ cần đọc này, có vẻ như nó sẽ ẩn hoàn toàn các dấu hiệu thay vì chỉ đơn giản là làm cho chúng không thể nhấp được. Đúng không? –
Điều đó là chính xác. Đối với một giải pháp không chính thức (không ổn định) để chúng hiển thị, hãy xem nhận xét của tôi theo câu hỏi trên về việc buộc phiên bản API cũ hơn. Nếu bạn tìm thấy một giải pháp tốt hơn tôi rất thích nghe về nó. – Glenn
Cảm ơn! Điều này hoàn toàn hữu ích. :) –
Vấn đề này đã được đăng nhập với google tại địa chỉ:
http://code.google.com/p/gmaps-api-issues/issues/detail?id=3866
Hãy ngôi sao và bình luận nhu cầu của bạn về vấn đề này ở đó.
Tôi hiểu rằng câu hỏi này là cũ, nhưng có lẽ câu trả lời này sẽ giúp những người khác:
Tôi không chắc chắn nếu điều này là hợp pháp, nhưng tôi đã kết thúc khám phá mã và thực hiện điều này:
$("#google-map").on("mousedown",function(){
setTimeout(function(){
disableInfoWindows();
},500);
});
function disableInfoWindows()
{
$(".gm-iw.gm-sm").parent().parent().remove();
$("[style='position: absolute; left: -2px; top: -336px; width: 59px; height: 492px; -webkit-user-select: none; border: 0px; padding: 0px; margin: 0px;']")
.parent()
.parent()
.remove();
}
Nó làm việc cho tôi, không có thông tinWindow hiển thị, trong khi vẫn giữ tất cả các biểu tượng. Bất cứ ai có ý tưởng tăng cường mã đều được chào đón, infoWindow chỉ hiển thị một chút trong lần đầu tiên nó sắp mở, sau lần đầu tiên, nó hoàn toàn biến mất.
Tôi hiểu rằng OP muốn một giải pháp duy trì nhãn/biểu tượng nhưng tạm ngưng các sự kiện nhấp chuột. Tôi không chắc điều này là có thể; vui lòng star this issue
Tuy nhiên, một số người trong chúng ta vẽ hình dạng sans Trình quản lý bản vẽ và nhãn/biểu tượng đang cản trở việc thêm điểm mới. Nếu nó đáp ứng yêu cầu của bạn, bạn có thể tạm thời xóa các biểu tượng/nhãn. Tôi đã phát hiện ra rằng quá cảnh, poi, và cảnh quan tất cả cần phải được toggled:
var map = new google.maps.Map(document.getElementById("map"), {});
map.poi = function(state){
var styles = [
{
"featureType": "transit",
"stylers": [
{ "visibility": "off" }
]
},{
"featureType": "poi",
"stylers": [
{ "visibility": "off" }
]
},{
"featureType": "landscape",
"stylers": [
{ "visibility": "off" }
]
}
];
this.set("styles", (state)? {} : styles);
}
Và việc sử dụng:
//turn the labels/icons off
map.poi(false);
//turn them back on
map.poi(true);
Google đã tiếp xúc với một tùy chọn cho việc này. Xem clickableIcons
của google.maps.MapOptions
in the docs.
Ví dụ mã khởi tạo:
map = new google.maps.Map(document.getElementById('map'), {
clickableIcons: false
});
Điều này thực sự cần được đánh dấu là câu trả lời ngay bây giờ. – keaukraine
thêm tùy chọn này để mapOption clickableIcons: false
đây là thêm nhiều lựa chọn tôi nghĩ rằng bạn sẽ
draggable: true, // this is for disable the Draggable
disableDefaultUI: true, // this for disable Default UI
fullscreenControl: false, // this is for disable Full Screen
scrollwheel: true, // this is for disable Scroll Wheel
disableDoubleClickZoom: false, // this is for disable Double Click Zoom
draggableCursor:'crosshair',// this is for cursor type
draggingCursor:'move', // this is for dragging cursor type
minZoom: 3, // this is for min zoom for map
maxZoom: 18 , // this is for max zoom for map
//note : max, min zoom it's so important for my design.
zoom: 14, // this is to make default zoom
clickableIcons: false, // this is to disable all labels icons except your custom infowindow or Infobox.
- 1. Dừng xe buýt Google Transit trong tuyến đường vô hình và trên bản đồ bị vô hiệu hóa
- 2. Vô hiệu hóa các nhấp chuột trên NSView
- 3. Vô hiệu hóa Nút khi nhấp vào
- 4. jquery - vô hiệu hóa nhấp vào
- 5. OpenLayers: vô hiệu hóa phóng to khi nhấp đúp vào
- 6. Google Spreadsheet - vô hiệu hóa chỉnh sửa
- 7. Tạo một loại giá trị không thể vô hiệu hóa có thể vô hiệu hóa
- 8. Làm thế nào để vô hiệu hóa google maps kéo
- 9. Không đóng thông tinWindow trên bản đồ được nhấp. (Google Map Android API V2)
- 10. Google Maps Vô hiệu hóa người dùng panning trên tất cả các sự kiện
- 11. Google Maps Android MapView v2: vô hiệu hóa thu phóng
- 12. GWT CellTable, vô hiệu hóa ButtonCell khi nhấp vào
- 13. Làm thế nào để vô hiệu hóa android đánh dấu bản đồ trung tâm nhấp chuột tự động
- 14. kích hoạt điểm đánh dấu bản đồ google nhấp
- 15. Vô hiệu hóa lựa chọn DIV khi nhấp vào nó
- 16. Vô hiệu hóa nhấp chuột khi ra khỏi div
- 17. Vô hiệu hóa nút sau khi nhấp vào vấn đề
- 18. Vô hiệu hóa nhấp chuột phải trong silverlight
- 19. Làm cách nào để vô hiệu hóa Nhấp vào WebView?
- 20. Vô hiệu hóa các nhánh cụ thể trên GitHub
- 21. Tạo một cột có thể vô hiệu hóa DB2
- 22. jqgrid vô hiệu hóa tiêu đề
- 23. vô hiệu hóa/bật nhấp chuột phải vào một phần cụ thể của nội dung html
- 24. Làm thế nào để vô hiệu hóa UIButton nổi bật trên nhấp chuột?
- 25. javascript/jquery vô hiệu hóa nút gửi trên nhấp chuột, ngăn chặn đôi nộp
- 26. tắt tính năng kéo thu phóng trong bản đồ Google bằng cách nhấp vào nút
- 27. Có cách nào để vô hiệu hóa nhãn không?
- 28. bạn có thể vô hiệu hóa một người theo dõi sự kiện mà không xóa nó?
- 29. Bản đồ hình ảnh có thể nhấp C#
- 30. Có thể vô hiệu hóa Menu ứng dụng trên Điều khiển Ribbon không? (WPF)
tôi thấy một ví dụ về không khí bnb tìm kiếm bản đồ. Họ đã tắt nhấp chuột mốc mà không ẩn các mốc. Họ đã làm điều đó như thế nào? – Clark
Tôi nghĩ bạn có thể ép buộc phiên bản cũ hơn của api của họ, như nói 3.3 hoặc 3.4, và nó có thể hoạt động, hoặc bạn có thể sử dụng giải pháp tôi đã đăng bên dưới với api mới nhất. – Glenn
tôi sẽ thử. cảm ơn. – Clark