为什么 Google Places API 没有执行我的请求?

Why Google Places API is not executing my request?

我正在尝试创建一个简单的应用程序,我在其中插入搜索区域、搜索内容和搜索半径。我不明白为什么它只在我第二次执行查询搜索时才能正常工作,我知道问题可能出在我的 codeAddress() 函数中:

function codeAddress(){
                var address = document.getElementById('Zona').value;
                geocoder.geocode( { 'address': address}, function(results, status){
                    if (status == google.maps.GeocoderStatus.OK){
                    map.setCenter(results[0].geometry.location);
                    coordo = results[0].geometry.location;
                    }else{
                        alert('Geocode was not successful for the following reason: ' + status);
                    }
                });
            }

出于某种我不知道的原因它会跳过并且不会进入 geocoder.geocode( { 'address': address}, function(results, status) 而是进入内部如果这是我第二次执行该函数,而不是第一次时间.

这是应用程序:

Jsfiddle 如果你输入一个城市名称并点击一次按钮它只会找到位置如果你再次点击按钮它按预期工作,它会丢弃图钉并创建 table..有人知道为什么吗?谢谢。

我看了你的代码,正如你所说,函数codeAddress第一次跳转。 我在 google 网站开发人员那里寻找地理编码服务的操作,我看到函数 codeAddress 的行为方式与您的相同。

为了解决您的问题,我认为您可能 运行 在地理编码之前和启动功能搜索之后。

为此,我想我会使用 jQuery 更改:

$ ("input"). change (function () {
        //your code here
     })

你的函数应该是这样的:

    $(document).ready(function(){
        $("#Zona").change(function codeAddress(){
            var address = document.getElementById('Zona').value;
            geocoder = new google.maps.Geocoder();
            geocoder.geocode( { 'address': address}, function(results, status){
                if (status == google.maps.GeocoderStatus.OK){
                    coordo=(results[0].geometry.location);
                }else{
                    alert('Geocode was not successful for the following reason: ' + status);
                }
            });
        });
    });

我修改了你的例子,你可以在这里查看: http://jsfiddle.net/ftxgm0cn/

你可以关注这个plunk。我已经解决了所有问题。