booleans

booleanClockwise

npm install @turf/boolean-clockwise

接收一个 type 为 LineString 的线要素,判断该要素是否顺时针走向

参数

入参 类型 描述
line Feature<LineString> 线要素

返回

Boolean - true/false

范例

  1. var clockwiseRing = turf.lineString([
  2. [0, 0],
  3. [1, 1],
  4. [1, 0],
  5. [0, 0]
  6. ]);
  7. var counterClockwiseRing = turf.lineString([
  8. [0, 0],
  9. [1, 0],
  10. [1, 1],
  11. [0, 0]
  12. ]);
  13. turf.booleanClockwise(clockwiseRing);
  14. //=true
  15. turf.booleanClockwise(counterClockwiseRing);
  16. //=false

booleanContains

npm install @turf/boolean-contains

接收两个任意类型的要素,判断第二个要素是否包含于第一个要素,即真子集。返回的值与@turf/boolean-within 是完全相反的结果

参数

入参 类型 描述
feature1 Geometry\ Feature 外圈 GeoJSON
feature2 Geometry\ Feature 内圈 GeoJSON

返回

Boolean - true/false

范例

  1. var line = turf.lineString([
  2. [1, 1],
  3. [1, 2],
  4. [1, 3],
  5. [1, 4]
  6. ]);
  7. var point = turf.point([1, 2]);
  8. turf.booleanContains(line, point);
  9. //=true

booleanCrosses

npm install @turf/boolean-crosses

接收两个任意类型的要素,判断它们是否有相交点

参数

入参 类型 描述
feature1 Geometry\ Feature GeoJSON
feature2 Geometry\ Feature GeoJSON

返回

Boolean - true/false

范例

  1. var line1 = turf.lineString([
  2. [-2, 2],
  3. [4, 2]
  4. ]);
  5. var line2 = turf.lineString([
  6. [1, 1],
  7. [1, 2],
  8. [1, 3],
  9. [1, 4]
  10. ]);
  11. var cross = turf.booleanCrosses(line1, line2);
  12. //=true

booleanDisjoint

npm install @turf/boolean-disjoint

接收两个任意类型的要素,判断它们是否不相交,不相交返回 true

参数

入参 类型 描述
feature1 Geometry\ Feature GeoJSON
feature2 Geometry\ Feature GeoJSON

返回

Boolean - true/false

范例

  1. var point = turf.point([2, 2]);
  2. var line = turf.lineString([
  3. [1, 1],
  4. [1, 2],
  5. [1, 3],
  6. [1, 4]
  7. ]);
  8. turf.booleanDisjoint(line, point);
  9. //=true

booleanEqual

npm install @turf/boolean-equal

接收两个任意类型的要素,判断它们的坐标是否相等

值得注意的是,坐标的顺序没有影响,只要全部坐标对的对应相等,就认为是相等的坐标

参数

入参 类型 描述
feature1 Geometry\ Feature GeoJSON
feature2 Geometry\ Feature GeoJSON

返回

Boolean - true/false

范例

  1. var pt1 = turf.point([0, 0]);
  2. var pt2 = turf.point([0, 0]);
  3. var pt3 = turf.point([1, 1]);
  4. turf.booleanEqual(pt1, pt2);
  5. //= true
  6. turf.booleanEqual(pt2, pt3);
  7. //= false
  8. var pt1 = turf.polygon([
  9. [
  10. [114.11207138646921, 40.065237806396226],
  11. [116.72681748022632, 37.74008299506812],
  12. [117.2981065427258, 40.28349411053313],
  13. [114.11207138646921, 40.065237806396226]
  14. ]
  15. ]);
  16. var pt2 = turf.polygon([
  17. [
  18. [117.2981065427258, 40.28349411053313],
  19. [116.72681748022632, 37.74008299506812],
  20. [114.11207138646921, 40.065237806396226],
  21. [117.2981065427258, 40.28349411053313]
  22. ]
  23. ]);
  24. var boolean = turf.booleanEqual(pt1, pt2); // true,坐标顺序不影响

booleanOverlap

npm install @turf/boolean-overlap

接收两个任意类型的要素,判断它们是否有交集重叠

值得注意的是,判断的要素必须是同类型的:面要素和面要素、线和线、MultiPoint 和 MultiPoint、MultiLineString 和 MultiLineString、MultiPolygon 和 MultiPolygon

参数

入参 类型 描述
feature1 Geometry\ Feature<LineString\ MultiLineString\ Polygon\ MultiPolygon> GeoJSON
feature2 Geometry\ Feature<LineString\ MultiLineString\ Polygon\ MultiPolygon> GeoJSON

返回

Boolean - true/false

范例

  1. var poly1 = turf.polygon([
  2. [
  3. [0, 0],
  4. [0, 5],
  5. [5, 5],
  6. [5, 0],
  7. [0, 0]
  8. ]
  9. ]);
  10. var poly2 = turf.polygon([
  11. [
  12. [1, 1],
  13. [1, 6],
  14. [6, 6],
  15. [6, 1],
  16. [1, 1]
  17. ]
  18. ]);
  19. var poly3 = turf.polygon([
  20. [
  21. [10, 10],
  22. [10, 15],
  23. [15, 15],
  24. [15, 10],
  25. [10, 10]
  26. ]
  27. ]);
  28. turf.booleanOverlap(poly1, poly2);
  29. //=true
  30. turf.booleanOverlap(poly2, poly3);
  31. //=false

booleanParallel

npm install @turf/boolean-parallel

接收两个线要素,判断它们是否平行

参数

入参 类型 描述
line1 Geometry\ Feature<LineString> 线要素
line2 Geometry\ Feature<LineString> 线要素

返回

Boolean - true/false

范例

  1. var line1 = turf.lineString([
  2. [0, 0],
  3. [0, 1]
  4. ]);
  5. var line2 = turf.lineString([
  6. [1, 0],
  7. [1, 1]
  8. ]);
  9. turf.booleanParallel(line1, line2);
  10. //=true

booleanPointInPolygon

npm install @turf/boolean-point-in-polygon

接收一个点要素和一个面要素,判断点要素是否在面要素内

参数

入参 类型 描述
point Coord 点要素
polygon Feature<Polygon\ MultiPolygon> 面要素
options Object 可配置项

options

属性 类型 默认值 描述
ignoreBoundary Boolean false 是否忽略面要素的边界,false 则点在边界上也算在边界内,true 反之

返回

Boolean - true/false

范例

  1. var pt = turf.point([-72, 41]);
  2. var poly = turf.polygon([
  3. [
  4. [-81, 41],
  5. [-81, 47],
  6. [-72, 47],
  7. [-72, 41],
  8. [-81, 41]
  9. ]
  10. ]);
  11. var boolean = turf.booleanPointInPolygon(pt, poly, {
  12. ignoreBoundary: false
  13. });
  14. //= true
  15. var boolean2 = turf.booleanPointInPolygon(pt, poly, {
  16. ignoreBoundary: true
  17. });
  18. //= false 忽略边界,点不在面要素内

booleanPointOnLine

npm install @turf/boolean-point-on-line

接收一个点要素和一个线要素,判断点要素是否在线要素上

参数

入参 类型 描述
point Coord 点要素
polygon Feature<LineString> 线要素
options Object 可配置项

options

属性 类型 默认值 描述
ignoreEndVertices Boolean false 是否忽略线要素的起点和终点,false 则点在两点上也算在线上,true 反之

返回

Boolean - true/false

范例

  1. var pt = turf.point([0, 0]);
  2. var line = turf.lineString([
  3. [-1, -1],
  4. [1, 1],
  5. [1.5, 2.2]
  6. ]);
  7. var isPointOnLine = turf.booleanPointOnLine(pt, line);
  8. //=true
  9. var pt = turf.point([-1, -1]);
  10. var line = turf.lineString([
  11. [-1, -1],
  12. [1, 1],
  13. [1.5, 2.2]
  14. ]);
  15. var isPointOnLine = turf.booleanPointOnLine(pt, line, {
  16. ignoreEndVertices: true
  17. });
  18. //=false

booleanWithin

npm install @turf/boolean-within

接收两个任意类型的要素,判断第一个要素是否包含于第二个要素,即真子集。返回的值与@turf/boolean-contains 是完全相反的结果

参数

入参 类型 描述
feature1 Geometry\ Feature 内圈 GeoJSON
feature2 Geometry\ Feature 外圈 GeoJSON

返回

Boolean - true/false

范例

  1. var line = turf.lineString([
  2. [1, 1],
  3. [1, 2],
  4. [1, 3],
  5. [1, 4]
  6. ]);
  7. var point = turf.point([1, 2]);
  8. turf.booleanWithin(point, line);
  9. //=true