Open Layers 3如何实现搜索功能来查找地图位置?

9

如何在OL3地图中实现最佳的搜索功能?

我需要一个搜索输入框,在搜索时显示几个选项,然后平移和缩放到特定的搜索词。就像谷歌地图一样。

我需要将谷歌地图集成到我的OL3中吗?


1
请看一下这是否是您所需要的 - https://github.com/jonataswalker/ol3-geocoder - Jonatas Walker
那是一个很棒的资源链接。太棒了!如果有问题,我会去探索并回来的。谢谢@JonatasWalker - Nicolas T
1个回答

19

Openlayers 3没有原生的搜索/地理编码器。但是你可以使用ol-geocoder扩展(我写的)来解决这个问题。

具体操作请参考提供的链接。我只想展示一下我通常如何使用它:

//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),但它没有影响。有什么线索吗? - Nicolas T
@NicolasT 应该是 map.getView().setZoom(7) - Jonatas Walker
1
使用我的自定义搜索字段怎么样?这个扩展程序是否足够灵活,让我可以自定义搜索字段的显示方式? - Nicolas T
@NicolasT 这将是一个很好的功能。您能否为此请求创建问题 - Jonatas Walker
@JonatasWalker 我正在使用OpenLayers 3...但是在事件触发时出现错误...错误信息在这里。 我的代码看起来像这样 - Biplov Bhandari
@BiplovBhandari 请确保您正在使用最新的OL 3版本-3.11.2。 - Jonatas Walker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接