我正在寻找对地址进行地理编码并将其转换为 GPS 坐标。基本上,
var address;
// Google/Yahoo/whatever program to convert address to GPS coordinates
var output=xx.xxxxxxx,xx.xxxxxxx
我研究了 Google 和 Yahoo API,但似乎无法让他们的代码在我的 Google Gadget 中工作。有什么建议么?
提前致谢!
我正在寻找对地址进行地理编码并将其转换为 GPS 坐标。基本上,
var address;
// Google/Yahoo/whatever program to convert address to GPS coordinates
var output=xx.xxxxxxx,xx.xxxxxxx
我研究了 Google 和 Yahoo API,但似乎无法让他们的代码在我的 Google Gadget 中工作。有什么建议么?
提前致谢!
这是我为地址到gps-coords的需求所做的:
function get_coords(address)
{
var gc = new google.maps.Geocoder(),
opts = { 'address' : address };
gc.geocode(opts, function (results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
var loc = results[0].geometry.location,
lat = loc.$a,
long = loc.ab;
// Success. Do stuff here.
}
else
{
// Ruh roh. Output error stuff here
}
});
}
然后你调用它get_coords('1600 Pennsylvania Avenue NW Washington, DC 20500')
,它会返回纬度和经度。
当然,您需要提供自己的 Google Maps API 密钥才能使其正常工作。
希望这可以帮助!
我帮助维护一个名为LiveAddress的 API 来执行此操作。比 Google/Yahoo 的 API 更易于使用,并且没有限制性的服务条款,该条款禁止大量请求、存储结果或在不显示地图或通过自动化的情况下使用数据。
这是一个完整的示例,使用此示例包装函数:
LiveAddress.init(123456789); // your API key here
LiveAddress.geocode("address goes here", function(geo) {
// You can also pass in an array of addresses,
// the ID of a DOM element containing the address,
// or an array of IDs
console.log(geo);
});
单个坐标位于geo.lat
和geo.lon
中,组合字符串“lat, lon”格式位于geo.coords
. 您还可以使用 获得数据的精度geo.precision
。
我做到了这一点并且工作完美:
<script type="text/javascript">
var dir1 = "5th ave, new york";
var google_url = "http://maps.googleapis.com/maps/api/geocode/json?address=";
var sensor = "&sensor=false";
var resultado;
function myFunction(){
$.getJSON(
google_url+dir1+sensor,
function(result){
$( "body" ).append( "Latitude: " + JSON.stringify(result.results[0].geometry.bounds.northeast.lat) )
$( "body" ).append( "Longitude: " + JSON.stringify(result.results[0].geometry.bounds.northeast.lng) )
});
}