2017-09-08 8 views
1

큰 기능 모음에 새 기능을 추가하려고하지만 기능 집합()이 전체 목록을 각 기능으로 대체합니다. 하지만 필자의 목적은 배열의 각 Value를 FeatureCollection의 해당 기능에 추가하는 것입니다. 아무도 나를 도울 수 있습니까? 당신이 볼 수있는 경우Google 어스 엔진 : 기능을 FeatureCollection으로 설정했지만 전체 배열은 아닙니다.

var table = ee.FeatureCollection(ft:.....blablabla); 

    **//Create an Array from the property DN in the FeatureCollection:** 
     var propert = table.limit(100).aggregate_array('DN'); 
    *// Values less than 1 will be set to 1, larger than 1== 0:* 
     var limit = ee.Array(propert).lt(1); 
     print(limit); 
    //Function, that add the list! of features (limit) to new property (Class) in the FeatureCollection ("table"). 
     var addFeature = function(ar) { 
      return ar.set({Class: limit}); 
    //Map throw the Featurecollection table 
     var areaAdded = table.limit(100).map(addArea); 
     }; 

따라서는, 내 코드는 첫 번째 속성에 배열에서의 FeatureCollection가 아닌 첫 번째 값을 각 속성의 전체 배열 [제한]을 추가하고 등등 ... 은 아무도 할 수 도와주세요? 감사합니다

답변

0

기능 수가 적 으면 기능 모음을 목록으로 변환하고 배열을 목록으로 변환하고 zip()을 함께 사용하고 목록에 기능을 매핑하여 속성을 설정할 수 있습니다. 장난감 예 :

var features = [ 
    ee.Feature(ee.Geometry.Rectangle(30.01, 59.80, 30.59, 60.15), {name: 'Voronoi'}), 
    ee.Feature(ee.Geometry.Point(-73.96, 40.781), {name: 'Thiessen'}), 
    ee.Feature(ee.Geometry.Point(6.4806, 50.8012), {name: 'Dirichlet'}) 
]; 

var fromList = ee.FeatureCollection(features); 

var array = ee.Array([2, 3, 5]); 

var lists = fromList.toList(fromList.size()).zip(array.toList()); 

var features = ee.FeatureCollection(lists.map(function(l) { 
    return ee.Feature(ee.List(l).get(0)).set('foo', ee.List(l).get(1)); 
})); 
print(features);