2013-06-26 30 views
2

我正在构建一个基本的汽车租赁搜索应用程序,该应用程序返回许多提供商的结果,并通过Leaflet地图显示这些提供商的位置。目前,我正在循环播放结果,并为每个结果添加一个位置标记到图层组。如何避免向小册子中的图层组添加重复标记

然而,每个供应商都会返回一些结果(他们提供的不同车型等等),我正在努力解决如何为每个供应商添加一个标记。我猜测也许我需要使用'hasLayer',但我不知道如何......

+1

'HasLayer'只有在您比较同一个对象时才有效。当您有两个包含相同数据的单独对象时,它将不起作用。在添加新图层之前,您需要先编写一些自定义比较代码 - 一个用于检查这些“重复”汽车的图层 - 然后再将新图层添加到组中。 –

回答

4

单张只检查您是否已经有相同的地图标记。

您需要记住添加之前添加的所有内容并进行检查。

var added = []; 

function addShop(shop){ 

    if(!added.contains(shop.id)) 
     var marker = magicMarkerFactory(shop); 
     map.addTo(marker); 
     added.push(shop.id); 
    } 

} 
+1

完美。唯一的问题是本地没有array.contains。因此,作为一种解决方法,您可以使用jQuery.inArray()(http://stackoverflow.com/a/1473742/3041394或)或自行编码 – schlenger