【问题标题】:Why is the geolocation not working when I loop through locations为什么当我遍历位置时地理定位不起作用
【发布时间】:2014-06-19 13:57:02
【问题描述】:

我有多个位置用于建立人员位置,但如果可用,我想使用地理位置,这是位置数组的第 1 个元素(第 2 个)。如果我使用代码,它根本不会返回位置(新的 google.map.LatLng)。有谁知道我的代码是否有问题或可能是什么问题。

for (var i = 0; i < locations.length; i++) {

  var newLat = parseFloat(locations[i][1]) + (Math.random() -.5) / 1500;
  var newLng = parseFloat(locations[i][2]) + (Math.random() -.5) / 1500;

  if(i == 1){
      if (navigator.geolocation) {
         navigator.geolocation.getCurrentPosition(function (position) {
            var myLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
         });
      } else {
        var myLatLng = new google.maps.LatLng(newLat, newLng);
      }
  } else {
      var myLatLng = new google.maps.LatLng(newLat, newLng);        
  }

}

【问题讨论】:

  • 如果您想在 i = 0 时使用“位置数组的第一个元素”的地理定位,因为在 Javascript 数组中是零索引(即数组 [0] 是第一个元素)。改为if(i === 0){
  • 抱歉,它是数字 1 元素,而不是第一个元素,即 0。虽然这对于本练习并不重要。我已经改变了问题。谢谢
  • 地理位置是异步的

标签: javascript google-maps-api-3 geolocation


【解决方案1】:

感谢 cmets。我通过获取循环外的当前位置并仅检查循环内的值来修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 2015-01-31
    • 1970-01-01
    • 2021-09-22
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多