問題タブ [turfjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - OpenLayers3 Draw からの自己交差ポリゴンの turf.js 交差エラー
OpenLayers3ol.interaction.Draw
を使用して、頂点をクリックするか、Shift + ドラッグしてフリーフォーム ポリゴンを描画することにより、ユーザーがマップ上に形状を描画できるようにしています (これは私のアプリケーションにとって重要です)。図形が描画されたら、turf.js を使用して描画された図形をクライアントの WFS レイヤーと比較し、実行intersect()
して WFS フィーチャが描画された図形と交差するかどうかを確認します。ただし、手描きの形状にわずかでも自己交差がある場合、turf.jsintersect()
関数は次のエラーで失敗します (326 行目で を呼び出しますintersect()
)。
turf.min.js:9 Uncaught [オブジェクト オブジェクト]
getResultGeometry @ turf.min.js:9
si.overlayOp @ turf.min.js:9
交差点 @ turf.min.js:15
e.exports @ turf.min.js :16
(無名関数) @ main.js:326
以下は私のコードのスケッチです。
私はturf.jsの両方を使用しようとしましたが、役に立ちsimplify()
ませol.geom.Geometry.simplify()
んでした。turf.jsintersect()
で手描きの自己交差ポリゴンを処理するための提案はありますか? または、交差点を実行する前に自己交差点を削除する方法はありますか?
javascript - LineString 座標を並べ替える GeoJson
多くの LineString で構成される GeoJson データの大規模なセットがあります。ジグザグができるだけ少なくなるように、すべての LineString の座標を並べ替える必要があります。たとえば、次の座標セットがあります。
この行の結果
代わりに、このように並べ替える必要があります
これをレンダリングする
これははるかに賢明な線です。
ここで「賢明な」は主観的であることに気づきました。別の見方をすると、座標を並べ替えて、最も直線を得るにはどうすればよいですか?
これはturf.jsを使用する可能性がありますか? ドキュメントを調べましたが、適切な関数が見つかりませんでした (または、間違った方法で考えている可能性があります)。
前もって感謝します!
angularjs - ionic で turf.js を使用するには?
私はイオンを初めて使用し、イオンアプリで芝を使用しようとしています。最初に、npm経由でインストールしました
これにより、ノード モジュールに turf フォルダーが追加されました。これをlibフォルダーにコピーしました。次に、インデックス ページに turf.min.js へのリンクを追加しました。
このエラーを与える
使用コード -
javascript - TurfJS MapBox マップにポイントを追加
Turf JS は初めてで、MapBox API を介した統合を検討しています。デフォルトの MapBox.Outdoors マップを使用し、TurfJS のドキュメントの例http://turfjs.org/docs/#pointに従っていますが、マップの上にプロットするポイントを取得できないようです。エラーは FeatureLayer.setGeoJSON に関連する私のリストのコード行にあるようですが、私はそれを理解できません。最後の行をアクティブのままにしておくと、マップが読み込まれません。コメントアウトすると、マップは読み込まれますが、ピンが表示されませんか?
javascript - ターフ、リーフレットでヘックス グリッドを分類する
分類したいフィルター処理された 16 進グリッドがあります。
で六角形を作成しました
で値を集計しました
ここで、myGeoJson はマルチポイント FeatureCollection であり、MyValue は null または > 0 の機能プロパティです
16進数をフィルタリングしました
各 hex オブジェクトには次のようにアクセスできます
各オブジェクトには .feature.properties.NewCol[n] があり、各配列にはインデックス (0、1、2) と値 (null、1 +) があります。
配列値の合計で各 16 進グリッドを分類するにはどうすればよいですか?
ネイティブの JavaScript でこれを試してみましたが、達成できるのは各値を持つ文字列だけです。
どこが間違っていますか?もっと簡単な方法はありますか?
geospatial - Turf.js Polygon、MultiPolygon、GeometryCollection との交差バッファ
これはフロントエンド側です。私はturf.jsを使用しています。
シナリオ: 現在地から 10 km 以内のすべての警告とインシデントを取得します。
多くの機能を備えた警告またはインシデントを含むライブ geojson フィードを取得していますgeometry.type='Point' || geometry.type='MultiPolygon' || geometry.type='GeometryCollection'
。
私がこれまでに行ったこと:
現在の座標でバッファー フィーチャ エリアを作成し、近く (10 km) でインシデントが発生したかどうかを比較します。
geometry.type='Point' の場合、turf.inside(point, bufferPolygon) を使用して比較していますが、これは正常に機能しています。
課題は、MultiPolygon や MultiPolygon を含む GeometryCollection など、ポイントではない場合です。
両方のパラメーターでポリゴンを受け入れることを見つけるために使用できる他の唯一の方法はturf.intersect(polygon, bufferPolygon)
.
geometry.type ='Polygon'
ここでは、フィードには入りませんが、 MultiPolygon
or GeometryCollection
(MultiPolygons を持つ) です。
また、multiPolygon を Polygon に変換しようとしましたが、うまくいきませんでした。
bufferFeature を、ポイント、マルチポリゴン、および GeometryCollection を持つフィーチャ コレクションのセットと比較する方法を提案してください。
php - リーフレットのバッファ内のポイントを取得する
特定の顧客 (ポイント) に最も近い農家 (ポイント) を取得しようとしています。この顧客にバッファーを作成し、turf-inside を使用してバッファー内のポイントを取得しましたが、機能せず、次のエラーが発生します。
不明なエラー: 座標、フィーチャ、またはポイント ジオメトリが必要です
これが私のコードです
ajax - Turf.within が機能しない
特定のポイント(顧客)に最も近いポイント(ファーマー)を取得する機能があります。ユーザーからの距離で顧客の周りにバッファーを作成し、turf.withinを使用してこのバッファー内のすべてのポイント(ファーマー)を取得しています. 機能コレクションの座標の配列を変数に指定すると正常に機能しますsearchWithin
が、変数 (配列) として指定すると、この場合はバッファーのポイントがbufresult
機能しません。