在OL3地图中实施搜索功能的最佳方法是什么?
我需要一个搜索输入,它会在搜索时向我显示一些选项,然后平移和缩放到特定搜索字词。非常像谷歌地图。
我是否需要将谷歌地图集成到我的OL3中?
答案 0 :(得分:13)
Openlayers 3中没有原生搜索/地理编码器。但您可以使用ol-geocoder 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);
});
答案 1 :(得分:0)
@Jonatas Walker:当我们搜索该位置并将添加Geocoder图层时?假设我们需要保存此坐标,如果我们需要通过添加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
}));