我从服务器收到的回复是this...
为了将响应中的对象用于marker Animation in Leaflet,我需要按照GeoJSON的定义来构建响应。
This is a good reference for GeoJSON standard,我需要的数据类型示例是MultiLineString,在第24页。
在链接lat和lng上看到的值位于{}
内,我需要在数组[]
中使用它们,因此我可以将它们用作传单中的MultiLineStrings,这意味着我只需要从此对象中获取值,例如[47.2133 ,13.4040]`
ajax调用并尝试构建响应:
$.ajax({
url: urlRoute,
async: false,
success: function(response){
var routeArr = response.features;
var coordsArr = Object.keys(routeArr).map(key => {
return routeArr[key]
});
var xxy = coordsArr.map(function(feature){
var obj = feature.geometry.coordinates[0];
return Object.keys(obj).map(function(key){
return obj[key];
})
});
var flipCoor = L.GeoJSON.coordsToLatLngs(xxy, 1);
//console.log(flipCoor);
var flippedCoor = flipCoor.map(function(obj){
return Object.keys(obj).sort().map(function(key){
return obj[key];
})
})
console.log(flippedCoor);
您可以创建empty_arr全局对象,一切都会好起来,我认为看起来像那样。
var empty_arr = new Array();
success: function(response){
var routeArr = response.features;
routeArr.forEach(linePart => {
var coords = linePart.geometry.coordinates;
coords.forEach(function(coord){
var newArray = coord;
var finalArr = newArray.map(function(obj){
return Object.values(obj).sort().map((value)=>{
return value
})
})
var flipCoor = L.GeoJSON.coordsToLatLngs(finalArr, 0);
var flippedCoor = flipCoor.map(function(obj){
return Object.keys(obj).sort().map(function(key){
return obj[key];
})
})
empty_arr.push(flippedCoor);...