仅通过更新特定设备的标记来显示多个设备的标记,而无需更改其他标记

时间:2017-02-22 12:50:28

标签: javascript google-maps marker

我每分钟都有多台设备发送GPS数据。每个设备都有MAC地址,可以识别特定设备是否已发送数据。因此,无论何时设备发送GPS数据事件都将发生,并且下面的代码将运行。它还会显示标记。

sock.onmessage = function(evt){
         var data = JSON.parse(evt.data);
         var latlng = data.GPS_Data;
         var array = $.map(latlng, function(el) {
            return [[el.lat, el.lng]];
            });
map.addMarker({
             lat:latlng[0].lat,
             lng:latlng[0].lng,
            infoWindow: {
                content: JSON.stringify(data)
            },
            mouseover: function() {
                this.infoWindow.open(this.map, this);
            },
            mouseout: function() {
                this.infoWindow.close();
            }
        });
       }

现在,问题是当同一设备发生不同位置的事件时,它将显示为不同的标记,而不是删除旧标记并添加新标记。我知道我可以使用map.removeMarkers();删除标记,但问题是它会删除所有标记。

问题:如何在不触及其他设备的所有标记的情况下更新特定MAC地址的特定标记(每当该设备发生事件时)?

有没有更好的方法来解决这个问题?

由于

0 个答案:

没有答案