我有一个包含多个多边形的 GeoJson 文件。像这样的东西。
我使用 Leaflet 在网站中呈现这个 GeoJson。
我想围绕包围所有多边形的多边形绘制轮廓。像这样的东西。

我正在使用的 GeoJSOn 格式:
{
"features": [
{
"geometry": {
"coordinates": [
[
[
1074.426,
-1136.986
],
[
1088.241,
-1123.171
]
]
],
"type": "Polygon"
},
"properties": {
"number": "2009",
"type": "",
"spaceid": null,
"alias": null,
"roomkey": "5/2009"
},
"type": "Feature"
}
],
"bbox": [
2445.578,
2445.578
],
"crs": {
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
},
"type": "name"
},
"type": "FeatureCollection"
Run Code Online (Sandbox Code Playgroud)
}
任何指针都会有帮助:)谢谢
我有一个矩形,需要用正方形填充它。我找到了中心线并想沿着这条线放置正方形。但是有没有什么简单的方法可以在 mapboxgl 中使用任何其他库(如 turfjs)绘制正方形?像设置正方形的中心和边长并获得正方形的坐标?有任何想法吗?因为用 geojson 放置圆圈不是问题,但对我来说方形似乎是个问题,因为我必须计算 4 个坐标。
有人有一个使用 Turf 根据新中心点将所有多边形点从一个位置移动到另一个位置的示例吗?
\n\n例如,让\xe2\x80\x99s 说我已经根据最初创建点的位置计算了一个中心。
\n\n然后我需要根据计算出的中心将这些点移动到新位置。
\n\n一如既往,任何帮助都会很棒!
\n我正在尝试在后端移动客户端方法:
客户端方法使用TurfJS和Leaflet来执行一些操作。唯一的问题是服务器端(nodejs)窗口不可用,因此我无法使用 Leaflet。
我正在寻找一种方法来将这段代码转换为普通 Turf 等效项:
const pointA = turf.point([originCoords.lng, originCoords.lat]);
const pointB = turf.destination.default(pointA, 50, 45, { units: 'kilometers' });
// here I'm using leaflet to get a BBox
const latLngBounds = L.latLngBounds(
L.latLng(pointA.geometry.coordinates[1],
pointA.geometry.coordinates[0]),
L.latLng(pointB.geometry.coordinates[1], pointB.geometry.coordinates[0]),
);
// using that BBox I then create the rectangle, again with leaflet
tile = L.rectangle(latLngBounds);
Run Code Online (Sandbox Code Playgroud)
我仍然是整个 GeoJSON 的新手,也许我错过了一些东西,有人可以帮助我吗?
我正在使用 openlayers3 并且我有编码的几何体。我可以获得路径中所有点的坐标 (lat,lng)(每条路径大约 500 个点)。给定路径内的一个随机点,如何计算路径起点到该点之间的距离?
我看过 turfjs,它看起来很有前途,但我想象的使用它的解决方案不会很好。取一个随机点 (p1),我可以找到最接近 p1 的路径点 (p2),然后生成一个新的多边形并计算其总距离。它可能有性能问题,尽管搜索将是 O(log n) 和新的多边形 O(n)。
编辑:随机点不一定在路径内,它是一个 GPS 坐标,并且存在误差。
编辑 2:对点数的估计是关闭的,每条路径大约有 500 个点,而不是 5k
有谁知道更好的方法?我对 openlayers3 和 turfjs 都不是很有经验。
我正在使用谷歌地图 API 对用户进行地理定位,如果他们在洛杉矶市,会告诉他们他们所在的洛杉矶警察局报告区。我有一个从这里加载的报告区 (RD) 的 geojson 覆盖图.
我想获取地理定位坐标,并使用 Turfjs 的 booleanPointInPolygon 来确定它是否在 RD 中,如果是,则返回该 RD。
但是无论我做什么,turfjs 函数总是返回 false,即使我显然处于 RD/Polygon 中。
我下载了geojson 文件并将其作为常规 json 文件导入到本地。这是我的功能:
getRd() {
const repdist = require("../assets/LAPD_Reporting_Districts.json");
let point = turf.point([34.05350702472784, -118.24291762202074]);
var poly;
repdist.features.forEach(rd => {
poly = turf.polygon(rd.geometry.coordinates);
var found = turf.booleanPointInPolygon(point, poly);
console.log("found: ", found);
});
Run Code Online (Sandbox Code Playgroud)
据我所知, turf.point 和 turf.polygon 数组形成正确,执行时没有错误。我已经完成了草坪功能,一切似乎都很好。
鉴于代码示例(洛杉矶市政厅,位于 RD 124)中的坐标,我希望结果返回 true,但“找到”返回 1135 个 false。
我试图从一个经纬度的点创建一个 8 公里的边界框。
例如,如果我有位于伦敦的经纬度 51.508394925082406, -0.12786049901934773,但我想找到距此点 8 公里的边界框,我尝试使用像 turf 这样的包,但它们仅在您必须边界框或如果你的坐标是一个线串。
turfjs ×8
javascript ×4
geojson ×3
leaflet ×2
bounding-box ×1
mapbox ×1
mapbox-gl-js ×1
maps ×1
openlayers-3 ×1
polygon ×1