1

我有以下格式的坐标集

(-33.9,18.6)

我该如何获取这些坐标最近的城镇或国家的名称?我猜它会涉及 Javascript,但如果合适的话,我很高兴也使用 PHP?

编辑:我正在尝试使用谷歌反向地理编码器,但遇到了麻烦。以下代码与他们的示例之一非常相似,但似乎根本没有运行......任何想法为什么?

<script type="text/javascript" charset="utf-8">
            function reverseGeocode(lat,lon){

                var geocoder = new GClientGeocoder();
                var latlng = new GLatLng(lat, lon);
                geocoder.getLocations(latlng, function(addresses) {
                    alert(addresses);
                });

            }
        </script>
4

4 回答 4

1

谷歌有一个网络服务,你可以调用它来进行(反向)地理编码,它比使用完整的 javascript api 更轻量级。

v2 的示例: http://maps.google.com/maps/geo?q=51,4&sensor=false&output=json&key=insert_your_api_key_here&callback= parseme

并使用 v3: http://maps.google.com/maps/api/geocode/json?latlng=51,4&sensor=false&callback= parseme

在这两种情况下,您都会得到一个 json 响应(javascript 对象),不同之处在于,在现在已弃用的 v2 中,您需要为您提供 api 密钥,并且您可以使用回调(用于跨站点 ajax 的优点),而大声喊叫不是v3 不再支持(但您不再需要 api 密钥)。

于 2010-04-11T17:28:17.257 回答
0

您注册了他们的 API 密钥吗?

还有任何特定的错误消息吗?

于 2010-04-10T00:25:00.313 回答
0

谷歌地图 API 有一个 javascript 示例。

http://code.google.com/apis/maps/documentation/services.html#ReverseGeocoding

于 2010-04-09T23:47:22.770 回答
0

好的设法让它工作,所以这就是我所做的:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=INSERTAPIKEYHERE" type="text/javascript"></script>
function reverseGeocode(latitude,longitude){

            var geocoder = new GClientGeocoder();
            var latlng = new GLatLng(latitude, longitude);

            geocoder.getLocations(latlng, function(addresses) {
                var address = addresses.Placemark[0].address;
                var country = addresses.Placemark[0].AddressDetails.Country.CountryName;
                var locality = addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;

                alert(address);
            });
        }
于 2010-04-10T01:43:52.017 回答