index.js 914 B

12345678910111213141516171819202122232425262728
  1. import booleanDisjoint from "@turf/boolean-disjoint";
  2. import { flattenEach } from "@turf/meta";
  3. /**
  4. * Boolean-intersects returns (TRUE) two geometries intersect.
  5. *
  6. * @name booleanIntersects
  7. * @param {Geometry|Feature<any>} feature1 GeoJSON Feature or Geometry
  8. * @param {Geometry|Feature<any>} feature2 GeoJSON Feature or Geometry
  9. * @returns {boolean} true/false
  10. * @example
  11. * var point = turf.point([2, 2]);
  12. * var line = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);
  13. *
  14. * turf.booleanIntersects(line, point);
  15. * //=true
  16. */
  17. export default function booleanIntersects(feature1, feature2) {
  18. var bool = false;
  19. flattenEach(feature1, function (flatten1) {
  20. flattenEach(feature2, function (flatten2) {
  21. if (bool === true) {
  22. return true;
  23. }
  24. bool = !booleanDisjoint(flatten1.geometry, flatten2.geometry);
  25. });
  26. });
  27. return bool;
  28. }