2013-06-26 58 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

相關問題