2011-01-02 11 views
1

私のウェブサイトのユーザーがGoogle Maps APIを使用して表示する地図上の場所をマークできるようにすることはできますか?その位置座標をdbに保存する必要があります。 Googleマップ - 場所を特定するユーザー

http://maps.google.com/maps/geo?q=Maine,+United+States&output=json&oe=utf8\&sensor=false&key=my_key 

しかし、私は(それが家の番号レベルで取り組んでいることを確認していない:

私はGoogle MapsのAPIを介して見てきた、私は私はこのような検索を行うには、Webサービスを使用することができますことを発見しました私はそれを必要とする)と私は表示する方法がわからない 'あなたは意味ですか?ユーザーがアドレスのスペルミスを訂正すると、ユーザーに通知されます。

誰でも知っていますか?

おかげで、

答えて

2

あなたは、このようなコードを使用して

http://digitalinspiration.com/community/location.html

何をしたいの素敵な例があります:

var map = null; 
var geocoder = null; 

function initialize() { 
    if (GBrowserIsCompatible()) { 
    map = new GMap2(document.getElementById("map")); 
map.addControl(new GLargeMapControl()); 
map.addControl(new GMapTypeControl()); 
map.setCenter(new GLatLng(37.4419, -122.1419), 14); 
map.enableScrollWheelZoom(); 
    geocoder = new GClientGeocoder(); 
    GEvent.addListener(map, "click", clicked); 
    } 
} 

function showAddress(address) { 
    if (geocoder) { 
    geocoder.getLatLng(
     address, 
     function(point) { 
     if (!point) { 
      alert("We're sorry but '" + address + "' cannot be found on Google Maps. Please try again."); 
     } else { 
     map.panTo(point); 
    } 
    }); 
} 
} 

function clicked(overlay, latlng) { 
    if (latlng) { 
    geocoder.getLocations(latlng, function(addresses) { 
     if(addresses.Status.code != 200) { 
     alert("reverse geocoder failed to find an address for " + latlng.toUrlValue()); 
     } 
     else { 
     address = addresses.Placemark[0]; 
     var myHtml = address.address; 
     map.openInfoWindow(latlng, myHtml); 
     } 
    }); 
    } 
} 

は、あなたが探しているものであるべき。

+0

$response->hasResults()false(または、count($response)0だろう)戻ってくるよりも、何かを見つけることはありますとにかく私はストリートレベルのマッピングを見ることができる方法でマップをロードするには? – JohnB

+0

http://code.google.com/intl/cs-CZ/apis/maps/documentation/javascript/reference.html#MapTypeId –

+0

これは本当に奇妙です。私は他のすべての場所でストリートレベルまですべてを見ることができますあなたが私に与えたトップリンクを使って見ましたが、イスラエルでは見られません。あなたはできる? – JohnB

0

世界中(300以上のスポーツイベント)でイベントを表示するためにMaps APIを使用するサイトを構築しました。そうです。ジオコーディングは一般的によく機能します(マップサイトと同じように)。私はマップ表示でそれを使用しました。そこでユーザーはマーカーをドラッグして正確な位置を調整し、座標を保存することができます。このようにして、あなたは本当に「あなたは意味しましたか」というタイプのボックスは必要ありません。

0

私は最近、SDK for Google's Geocoding APIを書いてオープンソース化しています。これは、APIでの作業が少し楽になるはずです。あなたが(現在は非推奨される)v2の API

API自体の入力であろうが、自動修正タイプミスを参照している上記のコードでのに対し、これは、V3 APIのためのものであることを

注意。あなたは、ユーザーが実際に住所た場所に入ったことを確認したい場合は、そのタイプミスがAPI「はdidnのように悪質だったのであれば、あなたはそう(私のSDKを使用)

$service = new GoogleGeocodeServiceV3(new CurlCommunicator()); 

$response = $service->geocode('123 Any Street, USA'); 

if ($response->isValid() && $response->hasResults()) 
{ 
    // Is it a street-level result? 
    if ($response->assertType(GoogleGeocodeResponseV3::ACT_STREET_ADDRESS)) 
    { 
    // Street-level address found 
    } else { 
    // Not a street-level address 
    } 
} 

のようにそれを行うだろうトン..私は、私はGoogleマップのストリートレベルのマッピングを提供している知っている場所、例えばイスラエルのすべての道路を見つけることができませんが、素晴らしいルックス

+0

あなたのSDKは本当に素敵ですね。地図を描き、要求されたアドレスを正確に示していますか?私はそれがちょうど "autocorrects"と場所が有効であるかどうかをチェックすることがわかるものから、間違っていますか?ありがとう! –

+0

緯度/経度情報も同様に応答の一部であり、SDKを介して入手できます。ドキュメンテーションにはより多くの情報があります。 –