Poly는 하나 이상의 점이 다각형 내부에 있는지 여부를 판단하기 위해 설계된 Dart 라이브러리입니다. 공간 데이터 분석, 지도 애플리케이션 및 인터랙티브 그래픽에서 유용한 점-다각형 테스트를 위한 효율적인 기하학적 계산을 제공합니다. 이 라이브러리는 구멍이 있는 복잡한 다각형을 포함하여 단순하고 복잡한 다각형 모두를 지원합니다. 가볍고 Flutter 패키지 매니저를 통해 쉽게 통합할 수 있으며, 실시간 공간 쿼리가 필요한 앱에 적합합니다. 소스 코드는 GitHub에 공개되어 있어 투명성과 사용자 맞춤화를 보장합니다.
사용 사례
지리공간 응용 프로그램
인터랙티브 지도 기능
게임 개발
충돌 감지
데이터 시각화
주요 기능
점-다각형 테스트
복잡한 다각형 지원
경량이고 빠름
Flutter와의 간편한 통합
GitHub에서 오픈소스
적합한 대상
지도를 사용하는 Flutter 개발자
공간 논리를 필요로 하는 응용 프로그램
충돌 감지 기능이 있는 게임
지리 데이터 처리 도구
고려 사항
3D 다각형을 지원하지 않습니다
내장된 다각형 생성 유틸리티 없음
2차원 평면 기하학에 국한
수동 다각형 정의 필요
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
poly
A library for checking if given point(s) is present inside Polygon or not.
type List<dynamic> is not a subtype of type List<num> in type cast
with as List<List<num>> -
type List<List<dynamic>> is not a subtype of type List<List<num>> in type cast
Note: Instead of casting, use toListNum() & toListListNum()
Use toListNum() for List<dynamic> => List<num>
Use toListListNum() forList<List<dynamic>> => List<List<num>>
Function List
Conversion Type
List<num> to Point(x,y) : use toPoint()
i.e. [x,y] -> Point(x,y)
Point can be created passing List<num>toPoint().
List must have exact 2 elements, else will throw WrongSizeForPoint exception
Point(x,y) to List<num> : use pointToList()
i.e. Point(x,y) -> [x,y]
List can be created passing Point(x,y)pointToList().
List<List<num>> to List<Point<num>> : use toListOfPoint()
i.e. [ [x1,y1],[x2,y2],... ] -> [ Point(x1,y1), Point(x2,y2),... ]
List of Points can be created from List<List<num>> by passing it to toListOfPoint()
List<Point<num>> to List<List<num>> : use pointsToList()
i.e. [ Point(x1,y1), Point(x2,y2),... ] -> [ [x1,y1],[x2,y2],... ]
List can be created passing List<Point<num>>pointsToList().
List<List<num>> to Polygon : use toPolyFromListOfList()
i.e. [ [x1,y1],[x2,y2],... ] -> Polygon( Point(x1,y1), Point(x2,y2),... )
Polygon can be returned from List<List<num>> by passing it to toPolyFromListOfList()
List<List<num>> to Polygon : use listOfList()
i.e. [ [x1,y1],[x2,y2],... ] from Polygon( Point(x1,y1), Point(x2,y2),... )
List<List<num>> can be returned from Polygon by passing it to listOfList()
List<dynamic> to List<num> : use toListNum()
Returns List<num> from a List<dynamic>
Can be used with [toPoly] as it accepts List<num>
Optional Parameters -
sizeTwo
Default value true
When set false, Output List can have more than 2 elements
replaceWithZero
Default value false
When set true, elements with type String or bool will be replaced with 0, rather than being removed
reverseIt
Default value false
When set true, List will be reversed
List<List<dynamic>> to List<List<num>> : use toListListNum()
Returns List<List<num>> from a List<List<dynamic>>
Can be used with functions like [areAllPointsInsidePolygon_List] , [getList_IsListOfListInside] , [toPolyFromListOfList] , [toListOfPoint] which accepts List<List<num>>
Optional Parameters -
replaceWithZero
Default value false
When set true, elements with type String or bool will be replaced with 0, rather than being removed
swapXAndY
Default value false
When set true, xi will be swapped with yi
i.e. [ [x1,y1], [x2,y2], ...] -> [ [y1,x1], [y2,x2], ...]
is Point(s) inside
Check if Single Point is inside
Get Status by passing x and y to contains
returns true if (x,y) is present inside Polygon
Get Status by passing Point(x,y) to isPointInside
returns true if Point is present inside Polygon
Check if Single Point is inside Polygon with tolerance of T meter
Get Status by passing Point(x,y) and Tolerance T to isPointInside