2017-01-16 3 views

답변

0

turf.lineSlice을 사용하여 두 점을 사용하여 선을 분할합니다. 이렇게하면 두 점 사이의 선에있는 섹션만으로 구성된 새 선이 반환됩니다. 다음으로 turf.lineDistance을 사용하여 잘라낸 선의 거리를 계산할 수 있습니다.

var line = { 
    "type": "FeatureCollection", 
    "features": [ 
    { 
     "type": "Feature", 
     "properties": {}, 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [ 
      [4.0155029296875, 40.18726672309203 ], 
      [4.0814208984375, 40.195659093364654 ], 
      [4.15283203125, 40.19146303804063 ], 
      [4.185791015625, 40.17887331434696 ], 
      [4.2242431640625, 40.15788524950653 ], 
      [4.273681640625, 40.111688665595956 ], 
      [4.3011474609375, 40.06125658140474 ], 
      [4.290161132812499, 40.02340800226773 ], 
      [4.3341064453125, 39.97291055131899 ], 
      [4.4000244140625, 39.96870074491696 ], 
      [4.4659423828125, 39.977120098439634 ], 
      [4.531860351562499, 40.002371935876475 ], 
      [4.5648193359375, 40.052847601823984 ], 
      [4.5648193359375, 40.11588965267845 ] 
     ] 
     } 
    } 
    ] 
}; 

var start = { 
    "type": "Feature", 
    "properties": {}, 
    "geometry": { 
    "type": "Point", 
    "coordinates": [4.2400360107421875, 40.143189742924406 ] 
    } 
}; 
var stop = { 
    "type": "Feature", 
    "properties": {}, 
    "geometry": { 
    "type": "Point", 
    "coordinates": [4.3059539794921875, 40.00815750046493 ] 
    } 
}; 

var sliced = turf.lineSlice(start, stop, line.features[0]); 
var length = turf.lineDistance(sliced, 'kilometers'); 
+0

고마워요! Ushuaia, 아르헨티나에서 :) –