将地理位置坐标放入数组中

时间:2015-03-10 20:56:35

标签: javascript html arrays geolocation coordinates

我正在尝试将我在watchPosition()期间收集的地理位置坐标放入一个数组中,以便我可以稍后计算出总距离。

我创建了一个新数组

 var mapArray;
 mapArray = new Array();

然后我分配我的纬度和经度我把值放到数组

   document.getElementById("currentLat").innerHTML = (position.coords.latitude);
    document.getElementById("currentLong").innerHTML = (position.coords.longitude);
    document.getElementById("mySpeed").innerHTML = (speedValue.toFixed(1));

 mapArray.push(currentLat);
 mapArray.push(currentLong);//put values in array

然后我想输出它们以检查它是否有效,所以尝试将数组转换为字符串

 function getArray(){

 var outputData = mapArray.toString();
 document.getElementById("arrayresult").innerHTML = (outputData);

  }

任何人都可以看到我出错的地方吗? 目前输出只是'HTML.SpanElement',[对象'一遍又一遍。

感谢。

1 个答案:

答案 0 :(得分:2)

如果您想使用数组,请不要使用new Array(),请改用数组文字[],然后我们可以一次性分配整个数组:

var mapArray = [
  position.coords.latitude,
  position.coords.longitude
];

但是,既然你已经有了这个方便的position对象,为什么不依靠它:

function showPosition(position) {
  // grab all the keys in position.coords
  var keys = Object.keys(position.coords);

  // and then map them to "key: value" strings
  var pairs = keys.map(function(key) {
    return key + ": " + position.coords[key];
  });

  // join them up with commas between them, and ONLY between them:
  var stringified = pairs.join(", ");

  // and then set that as our on-page container text
  document.getElementById("result").textContent = stringified;
}

当然,我们可以收紧,因为它是相当简单的代码:

function showPosition(position) {
  var result = Object.keys(position.coords).map(function(key) {
                 return key + ": " + position.coords[key];
               }).join(", ");
  document.getElementById("result").textContent = result
}

我们也在这里使用textContent,以防position.coords包含有趣的键或值。将其设置为文本内容而不是HTML内容,意味着没有可能意外触发的内容。