2012-04-19 5 views
0

Google Maps APIのGeocoderサービスを使用して、マップ上の検索ボックスを強化しています。私は、ユーザーが住所、市区町村、そしておそらくサポートされているその他のもので自由に検索できるようにしたいと考えています。最近まで緯度/経度座標をジオコーダーに渡すと、それらの特定の座標の結果が返されますが、最近では逆参照を行い、座標に最も近いアドレスを提供するように変更されています。私は実際には、最も関連性の高いものとして、座標に直接位置を求めます。GMaps API:Lat/LonCoordinatesと住所を使用した地図の検索

さまざまな入力フォームを検索ボックスから解析する方法や、ジオコーダを元の動作に戻す方法はありますか?

+0

何をしているのかを示すコードを投稿できますか? – javram

+0

ここに私が現在行っていることのジストがあります:[コード貼り付け](http://pastebin.com/LhwkpceK) – ertyu

+0

あなたの質問を明確にするために、あなたが説明しているのは、緯度/経度のペアをあなたは "txt_googlesearch"のidで作成した入力を、その特定の場所を中心とした地図にしようとしていますか?そして、これはジオコーダーを使用していましたが、現在は逆引き参照を行っていますか? – javram

答えて

0

コードを表示せずに逆ジオコーディングが表示される理由がわかりません。ただし、Places APIライブラリのAutocomplete featureを代わりに使用することをおすすめします。

+0

Placesは、私が見ることのできる座標をまったく処理しません。 – ertyu

+0

申し訳ありませんが、あなたが正しいです、私はあなたの質問を誤読しました。 –

0

入力した入力が緯度/経線のペアであるかどうかを正規表現で確認できませんでしたか?そして、それがそのペアを解析し、座標に直接ナビゲートする場合。次のようなもの:

var latLngRegex = /^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/; //Regex for checking that it is a latlng pair that has been entered 

    var address = document.getElementById("txt_googlesearch").value; 
    if (address=='' || address=='Search') { 
    return; 
    } 
    if (latLngRegex.test(address)) //Run the regex against the entered value 
    { 
    var coords = address.split(","); //Split the address into 2 decimal values 
    var mapPoint = new GLatLng(parseInt(coords[0]), parseInt(coords[1])); //Create a gLatLng from the split values 
    map.setCenter(mapPoint); //Move the map to the entered location 
    return; 
    } 
    //Call Geocoder as before 
+0

はい、それは確かに一つの選択肢ですが、解析する必要がある座標形式はかなり異なります。 – ertyu

関連する問題