当前位置:  开发笔记 > 编程语言 > 正文

Leaflet JS和Google Places搜索框

如何解决《LeafletJS和GooglePlaces搜索框》经验,为你挑选了1个好方法。

我希望在此演示中进行类似的搜索.这是我正在寻找的 在此输入图像描述

我能够使用传单搜索设置搜索,但搜索功能不强,与谷歌提供的地方搜索框相比较慢.

我在我的应用程序中使用传单AngularJS插件.请帮忙.

谢谢

在此输入图像描述



1> ghybs..:

两种行为之间的差异很可能不是由于Leaflet-search插件本身,而是来自该插件使用的Google Geocoding服务(在Google中实现),以及内部使用的那种您在开头提到的Google地方信息搜索框.

也就是说,无论您使用的是低级地理编码服务,还是使用自己的Places API,Google都可能会提供不同的结果.

如果您不愿意使用更集成的Google服务,则可以在Leaflet地图(而不是Leaflet搜索插件)中实施Google地方信息搜索框.

var GooglePlacesSearchBox = L.Control.extend({
  onAdd: function() {
    var element = document.createElement("input");
    element.id = "searchBox";
    return element;
  }
});
(new GooglePlacesSearchBox).addTo(map);

var input = document.getElementById("searchBox");
var searchBox = new google.maps.places.SearchBox(input);

searchBox.addListener('places_changed', function() {
  var places = searchBox.getPlaces();

  if (places.length == 0) {
    return;
  }

  var group = L.featureGroup();

  places.forEach(function(place) {

    // Create a marker for each place.
    var marker = L.marker([
      place.geometry.location.lat(),
      place.geometry.location.lng()
    ]);
    group.addLayer(marker);
  });

  group.addTo(map);
  map.fitBounds(group.getBounds());

});

(注意:将searchBox代码推入内部可能会更清晰onAdd,现在没有时间进行测试).

演示:http://plnkr.co/edit/YjcPKL7kB1bIByu7QJ2u?p =preview

注意:还有许多其他用于地理编码的Leaflet插件.那些通过Google服务提供搜索的服务都使用与传单搜索示例中使用的服务相同的服务.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有