在OL3地圖中實現搜索功能的最佳方式是什麼?打開圖層3搜索功能來查找地圖位置?
我需要一個搜索輸入,在搜索時向我顯示一些選項,然後平移和縮放到特定的搜索項。非常像谷歌地圖。
我需要將谷歌地圖整合到我的OL3嗎?
在OL3地圖中實現搜索功能的最佳方式是什麼?打開圖層3搜索功能來查找地圖位置?
我需要一個搜索輸入,在搜索時向我顯示一些選項,然後平移和縮放到特定的搜索項。非常像谷歌地圖。
我需要將谷歌地圖整合到我的OL3嗎?
Openlayers 3中沒有原生的搜索/地理編碼器。但是您可以使用extension(我寫過)來解決這個問題。
說明位於提供的鏈接。我只是想說明如何我一般使用它:
//Instantiate with some options and add the Control
var geocoder = new Geocoder('nominatim', {
provider: 'google',
lang: 'pt-BR',
placeholder: 'Pesquise por um endereço',
limit: 5,
key: '....',
keepOpen: false,
debug: true
});
map.addControl(geocoder);
// I don't want/need Geocoder layer to be visible
geocoder.getLayer().setVisible(false);
//Listen when an address is chosen
geocoder.on('addresschosen', function(evt){
var feature = evt.feature;
var coord = evt.coordinate;
// application specific
app.addMarker(feature, coord);
});
我試過改變縮放級別'map.setZoom(7)',但它沒有影響它。任何線索? –
@NicolasT應該是'map.getView()。setZoom(7)'。 –
使用我的自定義搜索字段怎麼樣?這個擴展是否足夠靈活,可以讓我自定義搜索字段的顯示方式? –
@Jonatas沃克:當我們搜索的位置,將增加地理編碼層吧?假如我們需要保存這個座標,並且如果我們需要通過添加Geocoder圖層來顯示這個位置,那麼我們應該遵循什麼樣的方式?
基本上,我們可以設置保存的位置,如下
map.setView(new ol.View({
projection: 'EPSG:3857',
center: ol.proj.transform([parseFloat(selectedInstallation.Longitude), parseFloat(selectedInstallation.Latitude)],
'EPSG:4326', map.getView().getProjection()),
zoom: 10
}));
看看,如果這是你在找什麼 - https://github.com/jonataswalker/ol3-geocoder –
這是一個偉大的資源鏈接。真棒!如果我有任何問題,將探索並回來。謝謝@JonatasWalker –