2016-05-14 4 views
0

住所を緯度と経度に変換しようとしていますが、値が表示されていません。 私は結果をデータベースに保存したいと思っていますが、私は最初に緯度/経度を取得することができません。私はどこが間違っているのか知りたい。住所を緯度と経度に変換する

以下

コードです:

<html> 
<head> 
<title>Theater</title> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=en" ></script> 
    <script> 
    // Called when page is loaded 
    function Init() 
    { 
    var address = Document.getElementById("address"); 
    var city = Document.getElementById("city"); 
    var state = Document.getElementById("state"); 
    var zip = Document.getElementById("zip"); 
    var country = Document.getElementById("country"); 
     // make google call to convert address to lat/lng coordinate 
     var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({ 'address': address+city+state+zip+country}, ShowLatLng); 
    } 

    // This function is the called when Google geocode() returns the result of geocoding an address 
    function ShowLatLng(results, status) 
    { 
     if (status == google.maps.GeocoderStatus.OK) 
     { 
      document.getElementById('latlng').innerHTML = results[0].geometry.location; 
     } 
    } 
</script> 
</head> 
<body> 
<table><tr> 
<td> Address &emsp; </td> 
<td><input type="text" name="address" id="address"> </td> </tr> 
<tr><td> City</td><td><input type="text" name="city" id="city"></td> 
<td>State </td><td><input type="text" name="state" id="state"></td></tr> 
<tr><td>zip</td><td><input type="text" name="zip" id="zip"></td> 
<td>Country</td><td><input type="text" name="country" id="country"></td> 
</tr></table> 
<input type="button" onclick="Init()" value="Determine Lat/Lon"> 
<label id="latlng"></label> 
+0

ブラウザのJavaScriptコンソールにどのようなエラーメッセージを見ていますか?目立つエラーが1つあります。 - Documet –

+0

エラーはありません。それだけでは表示されません。 @Pekkaくそ – Shraddha

+0

オスの 'Documet'のため、' var address = Documet.getElementById( "address"); 'にエラーがあります。エラーコンソールが表示されていますか? –

答えて

0

あなたはとても私の最高の推測では、あなたのアドレスが一致していないで、あなたはコンソール内の任意のJSのエラーを見ていないと述べました。

私はこの問題に関する2つのアイデアを持っています。

まず、アドレスのフォーマットが正しくない可能性があります。数字にはダッシュやその他の区切りやその他の句読点や綴りの可能性があるため、省略語、不足している単語(「ストリート」や「道路」など)があるため、ジオコーディングAPIでアドレスに一致させることができないことがあります。アドレスstandardization —をアドレスを一律にすることは非常に便利です—とvalidation —住所をデータベース—と照合して正しい書式を取得することは非常に便利です。私はあなたがGoogle Maps APIを使用していることを知っています.Googleは検索語句にはうまく対応していますが、アドレスの標準化には完全であり、住所の検証はしていません。

第二に、ここにあなたのコード:

geocoder.geocode({ 'address': address+city+state+zip+country}, ShowLatLng); 

はおそらく正しく動作しません。もし:123 My House RoadMy CityAA12345USA

address = "123 My House Road"; 
city = "My City"; 
state = "AA"; 
zip = "12345"; 
country = "USA"; 

その後、address+city+state+zip+country結果。アドレスの部分の間にスペースはないことに注意してください。これは基本的に上記の問題と同じです:アドレスが一致しない—が見つかりません。

は(フル開示:私は、SmartyStreets用アドレス検証会社を働いていた。)

関連する問題