Google地图地理编码和ZERO_RESULTS

时间:2014-02-11 10:58:30

标签: jquery google-maps

我已经把我之前写过的代码用于另一个Web应用程序并将其用于另一个。但是,由于没有明显的原因,它不会检索结果:

  

地理编码由于以下原因未成功:ZERO_RESULTS

我有以下代码 - 正如暗示的那样 - 在其他地方没有任何问题:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script type="text/javascript">
    function googleMaps (lat, lng, zoom) {
        geocoder = new google.maps.Geocoder();
        var myLatlng = new google.maps.LatLng(lat, lng);
        var myOptions = {
            zoom: zoom,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.TERRAIN
        }
        map = new google.maps.Map(document.getElementById("map-locations"), myOptions);
        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map
        });
        google.maps.event.addListener(map, "center_changed", function(){
            document.getElementById("latitude").value = map.getCenter().lat();
            document.getElementById("longitude").value = map.getCenter().lng();
            marker.setPosition(map.getCenter());
            document.getElementById("zoom").value = map.getZoom();
        });
        google.maps.event.addListener(map, "zoom_changed", function(){
            document.getElementById("zoom").value = map.getZoom();
        });
    }
    $(document).ready(function() {
        googleMaps(52.3555, -1.1743, 6);
    });
</script>
<script>
    $(document).ready(function(){
        $("#address").change(function(){
            geocoder.geocode({
                "address": $(this).attr("value")
            }, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setZoom(14);
                    map.setCenter(results[0].geometry.location);
                } else {
                    alert("Geocode was not successful for the following reason: " + status);
                }
            });
        });
    })
</script>

我还有“画布”和相应的地址字段,它们与其他地方的功能版本相同。

顺便说一下,我通过Google API程序创建了一个API密钥,我似乎与早期版本没有关系。但无论有没有API密钥,它都无法运行。

所以我想知道这个过程是否以某种方式破坏了事情。

1 个答案:

答案 0 :(得分:4)

您必须将代码更改为

...
geocoder.geocode({
                "address": $("#address").val()
            }, function(results, status) {
...

使用$("#address").val()代替$("#address").attr("value")

更新:另请参阅问题jQuery $obj.val() vs $obj.attr(“value”)