我正在解析 CSV 文件并将线条转换为地图上的标记,侧边栏上有相应的按钮。
我目前创建标记的方法是
var bounds = new google.maps.LatLngBounds();
var sensor, i, latlng;
for (i in sensorList) {
// Creates a marker
sensor = sensorList[i];
latlng = new google.maps.LatLng(sensor.lat, sensor.lng);
bounds.extend(latlng);
var marker = createMarker(
latlng, sensor.name, sensor.reading
);
// Creates a sidebar for the marker
createMarkerButton(marker);
}
// Fit to map bounds
mapCanvas.fitBounds(bounds);
我的 createMarker 函数是
function createMarker(latlng, title, html) {
// Creates a marker
var marker = new google.maps.Marker({
position: latlng,
map: mapCanvas,
title: title
});
// The InfoWindow is opened when the sidebar button is clicked
google.maps.event.addListener(marker, "click", function() {
infoWnd.setContent("<div class = \"PopUp\" style=\"width: 150px; height: 100px;\"<strong>"+title+"</title></strong><br>Latest reading: "+html+"<br><a href=\"\">Full reading</a>");
infoWnd.open(mapCanvas, marker);
});
return marker;
}
这适用于每个传感器名称/位置都是唯一的 CSV 文件。我正在尝试扩展它以支持在 CSV 文件中存储多个条目的同一个传感器,并且仅为每个传感器的最新条目创建一个标记/按钮。
我相信这样做的推荐方法是保留一组标记,每次创建标记时,我都应该与这个数组进行比较。我对 Javascript 和 Google-Maps 很陌生,不确定应该在哪里进行检查。我玩弄了几种可能性,但似乎都没有。
有什么建议吗?