在Javascript中读取Json并格式化为GeoJSON

我正在阅读
JSON文件并格式化Geo
JSON

function getAddress(id,search,vagas, next) {
    geo.geocode({address:search}, function (results,status)
      { 
        if (status == google.maps.GeocoderStatus.OK) {  
          $scope.go = false;            
          var latlng = results[0].geometry.location;
          var objSuccess = 
          {
            "type": "FeatureCollection",
            "features": [
                {
                    "type": "Feature",
                    "geometry": {
                         "type": "Point",
                        "coordinates": [
                          latlng.lng(), latlng.lat()
                        ]
                    },                         
                    "properties": {
                      "id": id,
                      "endereco" : search,
                      "vagas" : vagas
                    }
                }
              ]      
          };      

          $scope.success.push(objSuccess);
          console.log(objSuccess);
          $scope.geocodes=true;             
          $scope.$apply();              
        }
        else {
          // === se houver over_query_limit error dá o delay e segue do próximo address
          if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
            nextAddress--;
            console.log("over_query_limit:"+nextAddress);
            delay++;
          } else {
            //alert("Error:"+status);
            var objError= {
                Id:id,
                Endereco: search,
                Erro: status
            }
            $scope.error.push(objError);            
            if ($scope.error.length >1){
                $scope.errors=true;             
            }    
            $scope.$apply();              
          }   
        }
        next();
      }
    );
}    

输出:标题类型featureCollection重复.我需要在添加功能之前和之后创建标题.有没有人有一个如何在JavaScript中执行此操作的示例?

    {  
       "type":"FeatureCollection",
       "features":[  
          {  
             "type":"Feature",
             "geometry":{  
                "type":"Point",
                "coordinates":[  
                   -51.21582910000001,
                   -30.0331466
                ]
             },
             "properties":{  
                "id":3,
                "endereco":"Av. Osvaldo Aranha, n° 632",
                "vagas":18
             }
          }
       ]
    },
    {  
       "type":"FeatureCollection",
       "features":[  
          {  
             "type":"Feature",
             "geometry":{  
                "type":"Point",
                "coordinates":[  
                   -51.2141699,
                   -30.0338833
                ]
             },
             "properties":{  
                "id":4,
                "endereco":"Av. Osvaldo Aranha, n° 806",
                "vagas":17
             }
          }
       ]
    },
    {  
       "type":"FeatureCollection",
       "features":[  
          {  
             "type":"Feature",
             "geometry":{  
                "type":"Point",
                "coordinates":[  
                   -51.21328779999999,
                   -30.0343426
                ]
             },
             "properties":{  
                "id":5,
                "endereco":"Av. Osvaldo Aranha, n° 908",
                "vagas":14
             }
          }
       ]
    },
    {  
       "type":"FeatureCollection",
       "features":[  
          {  
             "type":"Feature",
             "geometry":{  
                "type":"Point",
                "coordinates":[  
                   -51.212449600000014,
                   -30.0348684
                ]
             },
             "properties":{  
                "id":6,
                "endereco":"Av. Osvaldo Aranha, n° 1004",
                "vagas":12
             }
          }
       ]
    },
    {  
       "type":"FeatureCollection",
       "features":[  
          {  
             "type":"Feature",
             "geometry":{  
                "type":"Point",
                "coordinates":[  
                   -51.21169850000001,
                   -30.0352397
                ]
             },
             "properties":{  
                "id":7,
                "endereco":"Av. Osvaldo Aranha, n° 1092",
                "vagas":17
             }
          }
       ]
    },
  ........

最佳答案 在迭代器之外创建对象并首先添加标题:

var objSuccess = {}
var objSuccess["type"] = "FeatureCollection"
var objSuccess["features"] = []

然后,为了向对象添加新功能,请使getAddress函数在成功时返回如下对象:

            {
                "type": "Feature",
                "geometry": {
                     "type": "Point",
                    "coordinates": [
                      latlng.lng(), latlng.lat()
                    ]
                },                         
                "properties": {
                  "id": id,
                  "endereco" : search,
                  "vagas" : vagas
                }
            }

然后运行它,将其返回的内容推送到objSuccess.

编辑:这已经解决,但只是向其他用户说明我的意思是将函数的返回值推入objSuccess [“features”].我为任何困惑道歉

希望这可以帮助. 🙂

点赞