【问题标题】:Something happened to my google map api script我的谷歌地图 api 脚本出了点问题
【发布时间】:2014-01-11 18:27:08
【问题描述】:

在“完成”Web 部件之后,我一直在做我的项目的移动部分。我正在使用谷歌地图 API。我编写了以下代码:

function codeAddress() {


              var image = 'images/tickmark1.png';
              var address = document.getElementById('address').value;
              geocoder.geocode( { 'address': address}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {

                  map.setCenter(results[0].geometry.location);
                  var markerZad = new google.maps.Marker({
                      map: map,
                      position: results[0].geometry.location,
                      title: "NEW TASK",
                      icon: image
                  });
                  document.getElementById('latitude').value =results[0].geometry.location.nb.toPrecision(9);
                  document.getElementById('longitude').value=results[0].geometry.location.ob.toPrecision(9);
                  document.getElementById('adrs').value=document.getElementById('address').value;
                  document.getElementById('latit').value =results[0].geometry.location.nb.toPrecision(9);
                  document.getElementById('longit').value=results[0].geometry.location.ob.toPrecision(9);
                  alert("Ustalono wspolrzedne nowego zadania. Wybierz pracownika \n (PPM usuwa znacznik)");
                } else {
                  alert('Geocode was not successful for the following reason: ' + status);
                }
              google.maps.event.addListener(markerZad, 'click', function() {
                alert("Nowe zadanie: \n"+ address +  "\n"+"Wybierz pracownika \n (PPM usuwa znacznik)");
                map.setZoom(14);
                map.setCenter(this.getPosition());
              });
              google.maps.event.addListener(markerZad, 'rightclick', function() {
                markerZad.setMap(null);

                document.getElementById('latitude').value =0;
                document.getElementById('longitude').value=0;
                document.getElementById('adrs').value=0;
                document.getElementById('latit').value =0;
                document.getElementById('longit').value=0;
                document.getElementById('ajdideva').value="X";
                document.getElementById('iddev').value=0;
                document.getElementById('baton').disabled=true;
                alert("Usunieto znacznik. Wpisz inny adres.");
              });

            });

    }

让我们抛开这段代码的层次。我敢肯定这是一个坏的。但问题是......它曾经像几天前一样为我工作。现在没有了。是的,从那以后我就再也没有碰过它……我自己想通了,这个问题会导致“结果”。我得到状态==OK,然后它在正确的位置放置一个标记,然后......什么都没有发生。我的意思是我在 html 文件中的输入没有改变它们的值并且 +listeners 没有工作。当我更改“结果[0]”时。等到简单的字符串,它起作用了,这就是为什么我认为结果 [0] 有问题。请问有什么建议吗?

【问题讨论】:

标签: javascript google-maps


【解决方案1】:

不要访问未记录的属性,例如results[0].geometry.location.nb 。这些属性的名称可能(并且将会)改变。要访问这些属性的值,请使用记录在案的方法,例如lat() 访问LatLng-instance 的纬度:

document.getElementById('latitude').value 
    = results[0].geometry.location.lat().toPrecision(9);

【讨论】:

  • 是的,谢谢:) 刚刚想通了。在许多教程/示例中看到这些属性,所以我自己使用它们。
猜你喜欢
  • 2017-02-24
  • 2013-01-18
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多