이 플러그인을 사용하지는 않았지만 어쨌든 찌르는 것입니다.
나는 source: function(request, response){}
기능을 사용하여 더 복잡한 source
을 만들 것을 권장합니다. See more.
$("#txtSearch").autocomplete({
source: function(req, resp){
var results = [];
$.each(setoresComerciais.features.properties, function(k, p){
if(p.sco_dsc_loc.toLowerCase().indexOf(req.term.toLowerCase()) == 0){
results.push({
label: p.sco_num_sc + " - " + p.sco_dsc_loc,
value: p.sco_dsc_loc,
properties: p
});
}
});
resp(results);
},
select: function(event, ui){
map.fitBounds(stComerciaisLayer.getBounds(ui.item.value));
return false;
}
});
이렇게하면 잠재적 인 결과마다 { label, value }
쌍이 있어야합니다. 원하는 경우 ui.item.properties
을 통해 properties
에 액세스 할 수도 있습니다.
"1 - FORTALEZA"
이 아니라 "FORTALEZA"
이 아니라면지도 데이터의 제목과 일치하는 플러그인을 혼란시킬 수 있습니다.
예제 데이터 또는 jsFiddle을 제공 한 경우이 솔루션을 테스트했을 것입니다.
업데이트
좀 더 읽기를했다. 나는 참조 :
fitBounds(<LatLngBounds> bounds, <fitBounds options> options?)
가능한 최대 줌 레벨에 주어진 지리적 경계를 포함하는지도보기를 설정합니다. 나에게
map.fitBounds([
[40.712, -74.227],
[40.774, -74.125]
]);
, 함수가 문자열 대 배열을 기대하고 나타납니다. 이것은 .getBounds()
에 의해 반환되는 것입니다. 그러나 내가 읽은 어떤 것도 .getBounds()
은 입력을 허용하지 않는다고 조언합니다. 그래서 나는 stComerciaisLayer.getBounds(ui.item.value)
이 당신이 원하는 값을 리턴 할 것이라고 생각하지 않는다.
참고
당신은 좋은 대답을 선택, 그냥 대안으로 내 코드를 업데이트했습니다.
$("#txtSearch").autocomplete({
source: function(req, resp){
var results = [];
$.each(setoresComerciais.features, function(k, f){
var props = f.properties;
if(props.sco_dsc_loc.toLowerCase().indexOf(req.term.toLowerCase()) == 0){
results.push({
label: props.sco_num_sc + " - " + props.sco_dsc_loc,
value: props.sco_dsc_loc,
properties: props,
id: k
});
}
});
resp(results);
},
select: function(event, ui){
var feature = setoresComerciais.features[ui.item.id];
var featureLayer = L.geoJSON(feature)
map.fitBounds(featureLayer.getBounds());
}
});
나는이 시점에서 zoomin 또는 zoomout 할 필요가 있다고 생각합니다. map.setView ([lat, lng], zoom); 또한이 코드를 보시기 바랍니다 https://stackoverflow.com/questions/23083285/leaflet-set-zoom-level-on-search – SamaBalaYam
시도했지만 작동하지 않습니다. 이해하지 못합니다. '(그리고 나는 fitBounds가 이미 최대 확대/축소와 좌표를 얻었습니다. –
혼란 스럽지만 자동 완성 기능을 제공하고 있습니다. 대신 jQuery UI 자동 완성 기능을 사용하고 있습니까? – Twisty