0

好吧,自从我第一次发布这个并且我未能正确解释我想要做的事情时,这是我的第二次尝试。

在我的网站上,我实现了 Google Maps V3 Javascript。创建一组预定义的点(从 CMS 中)并通过包含所需信息的数组推送到地图。我的客户想知道的是,该站点的用户是否可以执行搜索以从该数组中查找现有点。我在想这将涉及使用 Places 库,但这会返回来自谷歌的所有有效结果,而不是来自在 CMS 中创建的自定义点数组。

$('#points-search').submit(function(){
    geocoder = new gm.Geocoder();

    var searchAddress = $(this).children('input[type="text"]').val();
    var searchPoints = [];

    if (geocoder){
        geocoder.geocode({'address' : searchAddress}, function(results, status){
            if (status == gm.GeocoderStatus.OK){
                $.each(results, function(i, result){
                    searchPoints.push({"lat" : result.geometry.location.Xa, "lng" : result.geometry.location.Ya});
                });
            } else {
                                    alert('nothing found!')
            }
        });
    }

    return false;
});

当然,该代码还没有完成。理论上我想做的是,比如说,如果我搜索“4777 Avenue Pierre-de Coubertin”,它会在我的 $points 数组中找到合适的点,而不是在蒙特利尔和所有其他点这个地址的世界。

lat: 45.5
lng: -73.553459
location: "2 Rue de la Commune Ouest, <br />Montreal, QC H2Y 2E2, Canada"
name: "Montreal Science Centre"
pointType: "Community"
url: "/points/item/montreal-science-centre"

lat: 45.514229
lng: -73.531342
location: "4777 Avenue Pierre-de Coubertin<br />Montreal, QC H1V 1B3, Canada"
name: "Montreal Biodome"
pointType: "Curated"
url: "/points/item/montreal-biodome"

我希望这能更清楚地描述我正在尝试做的事情。非常感谢。

4

2 回答 2

1

我的客户想知道的是,该站点的用户是否可以执行搜索以从该数组中查找现有点。

答案是肯定的。搜索涉及哪些标准?信息窗口中的数据?最近点?您是否有一个可以更有效地进行搜索的数据库?

理论上我想做的是,比如说,如果我搜索“4777 Avenue Pierre-de Coubertin”,它会在我的 $points 数组中找到合适的点,而不是在蒙特利尔和所有其他点这个地址的世界。

你有选择:

  1. 在信息窗口中搜索该字符串的文本(或该地址的对象属性,您可能希望制作一个没有 HTML 格式的版本以使搜索更容易)
  2. 对输入地址进行地理编码并在标记数组中找到最近的点(假设结果在您感兴趣的区域)。
  3. 别的东西或以上的组合。
于 2012-10-19T16:42:08.540 回答
1

You want to reverse geocode all your addresses and use the harvesine formula to look for proximities. There is also other technology like r-tree, spatial index and space filling curves. Those are also proximity search and can be much faster then a search one-by-one for example with the harvesine formula.

于 2012-10-19T18:52:40.473 回答