0

初めてこれを投稿したので、何をしようとしているのかを適切に説明するのに筋金入りに失敗したので、これが私の2回目の試みです.

私のサイトでは、Google マップ V3 Javascript を実装しています。定義済みの一連のポイントが (CMS 内から) 作成され、必要な情報を含む配列を介してマップにプッシュされます。私のクライアントが疑問に思っているのは、このサイトのユーザーが検索を実行して、このアレイから既存のポイントを見つけることができるかどうかです。これには Places ライブラリの使用が含まれると考えていましたが、これは CMS で作成されているカスタム ポイントの配列からではなく、Google からすべての有効な結果を返します。

$('#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

すべての住所をリバース ジオコーディングし、harvesine 式を使用して近接を探します。r-tree、空間インデックス、空間充填曲線などの他のテクノロジーもあります。これらも近接検索であり、たとえば harvesine 式を使用して 1 つずつ検索するよりもはるかに高速です。

于 2012-10-19T18:52:40.473 に答える