我想在geojson中使用帶有標記圖層的搜索框中的typeahead和bloodhound。使用傳單地圖和坐在自舉導航欄中的搜索框,用戶可以查找地圖上顯示的項目。Typeahead和Bloohdound與geojson標記
有一些我只是不明白在實施bloodhound和打字。我一直無法使它工作。
首先,我使用的Array.push方法來使用這個代碼從層發送信息到一個數組:
function onEachFeatureProj(feature, layer) {
var ProjPopup =
'<strong>Organization: ' + feature.properties.OrgName + '</strong>';
ProjSearch.push({
name: layer.feature.properties.OrgName,
source: "CSJ 2014",
id: L.stamp(layer),
lat: layer.feature.geometry.coordinates[1],
lng: layer.feature.geometry.coordinates[0]
});
layer.bindPopup(ProjPopup);
}
然後,我定義獵犬元素:
var ProjBH = new Bloodhound({
name: "CSJ 2014",
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.OrgName);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: ProjSearch,
limit: 10
});
ProjBH.initialize();
最後,我開始預輸入發送到這個搜索框:
/* instantiate the typeahead UI */
$("#searchbox").typeahead({
minLength: 3,
highlight: true,
hint: false
}, {
name: "CSJ 2014",
displayKey: "name",
source: ProjBH.ttAdapter(),
templates: {
header: "<h4 class='typeahead-header'>Projects</h4>",
suggestion: Handlebars.compile(["{{name}}"].join(""))
}
});
的jsfiddle這裏:http://jsfiddle.net/Monduiz/dzo5yg72/
編輯
我終於發現了問題。我錯過了一些html元素接收內容:
<table class="table table-hover" id="feature-list">
<tbody class="list"></tbody>
</table>
好點。我嘗試更改名稱,但沒有得到不同的結果。 – Monduiz
你在這裏尋找的確切行爲是什麼?你的代碼在哪裏顯示/隱藏基於血跡查詢的地圖特徵? – snkashis
我試圖做的是這樣的:用戶在搜索框中輸入文本以從標記圖層找到特定的項目,並在列表中顯示建議以點擊。我在jsfiddle上的例子試圖到達那裏。 – Monduiz