将地理位置坐标放入数组
Putting geolocation coordinates into array
我正在尝试将我在 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],[object' 一遍又一遍。
谢谢。
如果你想使用数组,不要使用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 内容,意味着没有可以意外触发的内容。
我正在尝试将我在 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],[object' 一遍又一遍。
谢谢。
如果你想使用数组,不要使用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 内容,意味着没有可以意外触发的内容。