2016-06-15 11 views
4

中にGeoJSONなどのフォーマット私はJSONファイルを読み込むとにGeoJSON読むJSONとJavaScript

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 
      } 
      } 
     ] 
    }, 
    ........ 

答えて

2

イテレータの外で、あなたのオブジェクトを作成し、最初のヘッダを追加します。

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"]にプッシュすることを他のユーザーに明確にするだけです。混乱のため私の謝罪

これは役立ちます。 :)