将嵌套对象转换为数组以使用GeoJSON

问题描述 投票:-1回答:1

我从服务器收到的回复是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);
javascript arrays multidimensional-array leaflet geojson
1个回答
0
投票

您可以创建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);...
© www.soinside.com 2019 - 2024. All rights reserved.