将地址转换为经度和纬度
问题描述:
我想将地址转换为经度和纬度,但值不显示。 我甚至想将结果存储在数据库中,但我无法在第一时间获得经纬度。我想知道我出错的地方。将地址转换为经度和纬度
下面是代码:
<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   </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>
答
你说你没有看到在您的控制台任何JS错误,所以我最好的猜测是你的地址不匹配。
我对这个问题有两个想法。
首先,可能地址格式不正确。有时候,地理编码API无法匹配地址,因为有缩写,缺少的字词(如“街道”或“道路”等),因为数字有破折号或其他中断,或其他标点符号和拼写可能性。做地址standardization —使地址统一—和validation —检查地址与数据库—以获得正确的格式是非常有用的。我发现您使用的是Google Maps API,而Google对搜索字词的使用确实很好,但这并不是说它们在地址标准化方面非常完美,而且它们也不会进行地址验证。
其次,你的代码在这里:
geocoder.geocode({ 'address': address+city+state+zip+country}, ShowLatLng);
可能无法正常工作。如果:
address = "123 My House Road";
city = "My City";
state = "AA";
zip = "12345";
country = "USA";
然后address+city+state+zip+country
结果123 My House RoadMy CityAA12345USA
。请注意,地址各部分之间没有空格。这与我上面提到的基本上是相同的问题:地址不匹配—它没有被发现。
(全面披露:我工作SmartyStreets,地址认证公司)
什么错误信息,你在浏览器的JavaScript控制台看到?有一个明显的错误 - “Documet” –
没有错误。它只是不显示。 @Pekka웃 – Shraddha
在* var address = Documet.getElementById(“address”); *由于错误'Documet',* got *是错误的。你确定你正在寻找错误控制台吗? –