我需要一些关于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
谢谢。我现在明白了我的错误并修复了它。 –