反向地理编码一组坐标

时间:2010-04-09 23:36:05

标签: php javascript html5 reverse-geocoding

我有以下格式的坐标集

  

( - 33.9,18.6)

如何为这些合作伙伴获取最近城镇或国家/地区的名称?我猜它会涉及Javascript,但我很乐意在适当的时候使用PHP吗?

编辑:我正在尝试Google Reverse Geocoder,但遇到了麻烦。以下代码与他们的一个示例非常相似,但似乎根本没有运行......任何想法为什么?

<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 个答案:

答案 0 :(得分: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善良)来大声喊叫isn't supported in v3 any more(但您不再需要api密钥)。

答案 1 :(得分:0)

答案 2 :(得分:0)

您是否注册了API密钥?

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

答案 3 :(得分: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);
            });
        }