我需要一些關於Google Maps API的幫助。我能夠初始化地圖。現在我想添加一些標記。 我有一組複選框(它們被稱爲「網絡」)。每個複選框都有一個隱藏的經度和緯度字段。如果複選框被選中,地圖上應該會顯示一個標記 我設法通過繞道地圖來點擊地圖。但是我想觸發在複選框更改時創建新標記。更改複選框時在Google地圖上設置標記
這裏是如何工作的,當我點擊標記在地圖上顯示:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: {lat: 48.7791, lng: 9.0367}
});
google.maps.event.addListener(map, "click", function(event) {
//Get all checked Networks
var checked_network = $(".checkbox-network:checked");
checked_network.each(function(){
network_id = $(this).data("network-id");
//Get the hidden location longitudes and latitudes for each checked network element
network_locations_latitude = $(".location_latitude_network_"+network_id).val();
network_locations_longitude = $(".location_longitude_network_"+network_id).val();
var marker = new google.maps.Marker({
position: new google.maps.LatLng(network_locations_latitude,network_locations_longitude),
map: map
});
});
});
}
這裏是我設法得到它的工作,與點擊複選框。不幸的是沒有發生在JavaScript控制檯中顯示對象,但在地圖上不顯示標記。
$(document).on('change','.checkbox-network', function() {
var checked_network = $(".checkbox-network:checked");
checked_network.each(function(){
network_id = $(this).data("network-id");
//Get the hidden location longitudes and latitudes for each checked network element
network_locations_latitude = $(".location_latitude_network_"+network_id).val();
network_locations_longitude = $(".location_longitude_network_"+network_id).val();
console.log(network_id + " - " + network_locations_latitude);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(network_locations_latitude,network_locations_longitude),
map: map,
title: "test"
});
console.log(marker);
});
});
我在想什麼?如何在複選框的onchange
事件中顯示Google地圖中的標記?
這不會重新設置地圖嗎?你基本上調用並創建一個'new google.maps.Map()';新地圖不會包含以前添加的對象,包括標記。 –
@AdamAzad,謝謝。我更新了我的代碼。 – RGS
謝謝。我現在明白了我的錯誤並修復了它。 –