问题描述
(科罗拉多州)美国
{
"type": "FeatureCollection","features": [
{
"type": "Feature","properties": {},"geometry": {
"type": "polygon","coordinates": [
[
[
-109.0283203125,37.020098201368114
],[
-102.06298828125,40.9964840143779
],[
-109.0283203125,37.020098201368114
]
]
]
}
}
]
}
和位置
-105.8544607,39.1160152
而且我有很多不同地区的 geoJSON 文件,所以我想从接收到的 Condinates 中知道位置
我的问题
如何验证多边形中是否存在位置 (-105.8544607,39.1160152
)?
解决方法
虽然科罗拉多州是一个微不足道的案例(只需将东/西角与您的经度点和北/南角与纬度进行比较),我假设您也希望能够处理非方形状态。
我会使用 turf.js
library,特别是 BooleanContains
方法:
var line = turf.lineString([[1,1],[1,2],3],4]]);
var point = turf.point([1,2]);
turf.booleanContains(line,point);
var pt = turf.point([-77,44]);
var poly = turf.polygon([[
[-81,41],[-81,47],[-72,41]
]]);
turf.booleanPointInPolygon(pt,poly);
我看不出有多大区别,但这可能取决于您的数据来自何处以及它是几何图形还是特征。