反向地理编码:将坐标转换为地址?

4

我是否完全忽略了什么显而易见的事情?

我的意图是将坐标转换为地址并插入到一个div中。

http://jsfiddle.net/sHLG6/1/

谢谢。


给一个 DIV 元素赋值,这样可以吗? - Roko C. Buljan
请在问题正文中发布相关代码,链接到外部网站是不被允许的。 - Jason
1个回答

12

我立刻看到了你的代码中有三个问题:

  1. 你没有引用Google的JavaScript库
  2. 你没有调用initialize()codeLatLng()
  3. 你在div元素上使用了value属性,但你实际上需要使用getAttribute()方法。

我修改了你的代码,现在已经可以运行了。

为了完整起见,以下是原始代码:

<div id="latlng" value="54.9882,-1.5747"></div>
<div id="test"></div>
var geocoder; function initialize() {
geocoder = new google.maps.Geocoder(); } function codeLatLng() {

    var input = document.getElementById("latlng").value;
    var latlngStr = input.split(",", 2);
    var lat = parseFloat(latlngStr[0]);
    var lng = parseFloat(latlngStr[1]);
    var latlng = new google.maps.LatLng(lat, lng);
    geocoder.geocode({
        'latLng': latlng
    }, function(results, status) {

        document.getElementById("test").innerHTML = '' + (results[4].formatted_address); + ''
    }); }​

可工作的代码:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<div id="latlng" value="54.9882,-1.5747"></div>
<div id="test"></div>
var geocoder;
initialize();
codeLatLng();
function initialize() {

    geocoder = new google.maps.Geocoder();
}

function codeLatLng() {

    var input = document.getElementById("latlng").getAttribute('value');
console.log(input);
    var latlngStr = input.split(",", 2);
    var lat = parseFloat(latlngStr[0]);
    var lng = parseFloat(latlngStr[1]);
    var latlng = new google.maps.LatLng(lat, lng);
    geocoder.geocode({
        'latLng': latlng
    }, function(results, status) {

        document.getElementById("test").innerHTML = '' + (results[4].formatted_address); + ''
    });
}​

抱歉,我的原始代码中确实有1和2,但是第3个才是关键。非常感谢。 - Ollie Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接