Javascript 如何以控制台geojson格式lat/long输出?
我正在使用,我也试着跟随 通过以下步骤,我得到长/宽:Javascript 如何以控制台geojson格式lat/long输出?,javascript,jquery,leaflet,Javascript,Jquery,Leaflet,我正在使用,我也试着跟随 通过以下步骤,我得到长/宽: freeDraw.on('markers', function (event) { // Listen for any markers added, removed or edited, // and then output the lat lng boundaries. console.log('LatLngs:', event.latLngs, 'Polygons:', freeDraw.size()); }); 我得到
freeDraw.on('markers', function (event) {
// Listen for any markers added, removed or edited,
// and then output the lat lng boundaries.
console.log('LatLngs:', event.latLngs, 'Polygons:', freeDraw.size());
});
我得到的控制台输出如下:
Array[1]
0
:
Array[20]
0
:
L.LatLng
lat
:
51.51435127755928
lng
:
-0.08651733398437501
__proto__
:
Object
1
:
L.LatLng
lat
:
51.51349664501128
lng
:
-0.08505821228027345
__proto__
:
Object
2
:
L.LatLng
有没有一种方法可以像下面这样在控制台中附加每个坐标并有一个输出
var states = [{
"type": "LineString",
"coordinates": [[-100, 40], [-105, 45], [-110, 55]]
}, {
"type": "LineString",
"coordinates": [[-105, 40], [-110, 45], [-115, 55]]
}];
我甚至可以在控制台中打印第一组具有正确格式的坐标,然后手动复制/粘贴到geojson文件
"coordinates": [[-105, 40], [-110, 45], [-115, 55]]
可以在从图形创建的坐标上循环,然后将其作为对象推送到全局数组(容器)中
var states = [];
freeDraw.on('markers', function (event) {
// create coordinates object
var polyObj = event.latLngs[0].map(function(o){
return [o.lat, o.lng];
});
// Push new object to states
states.push({
"type": "LineString",
"coordinates":polyObj
});
});
var LAT_LNG=[51.505,-0.09];
var TILE_URL='1〕https://cartodb-basemaps-a.global.ssl.fastly.net/light_all/{z} /{x}/{y}@2x.png';
var map=newl.map(document.querySelector('section.map'),{doubleClickZoom:false}).setView(LAT_LNG,14);
L.tileLayer(TILE_URL).addTo(map);
var freeDraw=new freeDraw({mode:freeDraw.ALL});
map.addLayer(自由绘制);
//所有图形容器。
var状态=[];
freeDraw.on('markers',函数(事件){
//创建坐标对象
var polyBj=event.latLngs[0]。映射(函数(o){
返回[o.lat,o.lng];
});
//将新对象推送到状态
美国。推({
“类型”:“行字符串”,
“坐标”:PolyBJ
});
控制台日志(状态);
});代码>
正文{
保证金:0;
}
.地图{
宽度:100%;
高度:70vh;
}
.作为控制台包装{
高度:30vh;
}
您可以在从图形创建的坐标上循环,然后将其作为对象推送到全局数组(容器)中
var states = [];
freeDraw.on('markers', function (event) {
// create coordinates object
var polyObj = event.latLngs[0].map(function(o){
return [o.lat, o.lng];
});
// Push new object to states
states.push({
"type": "LineString",
"coordinates":polyObj
});
});
var LAT_LNG=[51.505,-0.09];
var TILE_URL='1〕https://cartodb-basemaps-a.global.ssl.fastly.net/light_all/{z} /{x}/{y}@2x.png';
var map=newl.map(document.querySelector('section.map'),{doubleClickZoom:false}).setView(LAT_LNG,14);
L.tileLayer(TILE_URL).addTo(map);
var freeDraw=new freeDraw({mode:freeDraw.ALL});
map.addLayer(自由绘制);
//所有图形容器。
var状态=[];
freeDraw.on('markers',函数(事件){
//创建坐标对象
var polyBj=event.latLngs[0]。映射(函数(o){
返回[o.lat,o.lng];
});
//将新对象推送到状态
美国。推({
“类型”:“行字符串”,
“坐标”:PolyBJ
});
控制台日志(状态);
});代码>
正文{
保证金:0;
}
.地图{
宽度:100%;
高度:70vh;
}
.作为控制台包装{
高度:30vh;
}
非常好,非常感谢。为了回答这个问题,也许提供console.log也不错,以防有人来问这个问题。再次感谢你lot@rob.m,非常欢迎。为未来的代码添加了控制台如果我们放入console.log(JSON.stringify(states))函数中的code>甚至更好,因为我们将打印正确的json格式字符串,非常感谢。为了回答这个问题,也许提供console.log也不错,以防有人来问这个问题。再次感谢你lot@rob.m,非常欢迎。为未来的代码添加了控制台如果我们放入console.log(JSON.stringify(states))函数中的code>甚至更好,因为我们将打印可以复制的正确json格式字符串