私は長方形で四角で塗りつぶす必要があります。 私は中心線を見つけ、その線に沿って四角形を配置したいと思います。 しかし、turfjsのような他のライブラリと一緒にmapboxglの四角形を描く簡単な方法はありますか? 四角形の中心と辺の長さを設定し、四角形の座標を取得するようにしますか? アイデア geojsonでサークルを配置することは問題ではありませんが、4つの座標を計算する必要があるため、四角形では問題があります。芝で行に沿って四角形を配置する方法は? (Geojson + mapbox)
2
A
答えて
2
あなたは、このタスクを解決するために手元に適切なツールを得ました。
は長方形の量との直線距離は、あなたが
使用縄張りをしたいの直線距離
デバイドを取得します。それを行うの
一つの方法は、このようなものになるだろう。行に沿ってポイントを取得するには()を使用してください。
turf.buffer、turf.bbox、およびturf.bboxPolygonを使用して点の位置に矩形
ここmapbox-GL-JS介し
を地図上にすべてを描画は、コード例です。結果を表示するには、 "run code snippet"を押すことができます。
https://jsfiddle.net/andi_lo/3rc6vca3/
mapboxgl.accessToken = 'pk.eyJ1IjoiZmFyYWRheTIiLCJhIjoiTUVHbDl5OCJ9.buFaqIdaIM3iXr1BOYKpsQ';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v9',
center: [-74.10931699675322, 4.61336863727521],
zoom: 11,
});
map.on('load',() => {
map.addSource('line', {
'type': 'geojson',
'data': {
'type': 'FeatureCollection',
'features': [],
},
});
map.addSource('rect', {
'type': 'geojson',
'data': {
'type': 'FeatureCollection',
'features': [],
},
});
map.addLayer({
id: 'line_layer',
source: 'line',
type: 'line',
paint: {
'line-width': 3,
'line-color': '#333',
},
});
map.addLayer({
id: 'rect_layer',
source: 'rect',
type: 'fill',
paint: {
'fill-color': '#00b7bf',
},
});
const line = turf.lineString([[-74.07, 4.66], [-74.17, 4.56]]);
const lineCollection = turf.featureCollection([line]);
const lineDistance = turf.lineDistance(line);
const rectCollection = turf.featureCollection([]);
const RECT_COUNT = 7;
const RECT_SIZE = 0.6;
const BUFFER_STEPS = 32;
const SEGMENTS = lineDistance/RECT_COUNT;
const UNITS = 'kilometers';
for(let i = 0; i <= RECT_COUNT; i++) {
const point = turf.along(line, (SEGMENTS * i), UNITS);
const buffered = turf.buffer(point, RECT_SIZE, UNITS, BUFFER_STEPS);
const bbox = turf.bbox(buffered);
const bboxPolygon = turf.bboxPolygon(bbox);
rectCollection.features.push(bboxPolygon);
}
map.getSource('line').setData(lineCollection);
map.getSource('rect').setData(rectCollection);
});
#map {
height: 500px;
}
<link href="https://api.tiles.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl.css" rel="stylesheet"/>
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v0.38.0/mapbox-gl.js"></script>
<script src="https://npmcdn.com/@turf/[email protected]/turf.min.js"></script>
<div id="map"></div>
関連する問題
- 1. MATLABの四角形内にテキストを配置する方法は?
- 2. uniformgridを使って四角形のボタンを配置する
- 3. 埋め込みSilverlightで四角形を配置する方法は?
- 4. パスに沿ってオブジェクトを配置(複製)する方法
- 5. html5キャンバスアニメーションで四角形の四角形を変更する方法
- 6. JavaScriptの四角形をランダムに配置しますか?
- 7. Dashcodeの四角形の四角形リストから行の値を取得する方法は?
- 8. SVG一角コーナー四角形/四角形
- 9. Scenekit X位置の異なる四角形を持つ方法
- 10. Mapbox GeoJSONが間違った位置にある場合
- 11. キャンバスを使って角丸四角形を徐々に描く方法
- 12. 四隅を指定して四角形を描く方法
- 13. OnRectangleToolClick:四角形の識別方法は?
- 14. 染色体図形に沿って位置をプロットする方法
- 15. OpenGLを使って四角形のグリッドにテクスチャを適用する方法
- 16. HTMLとCSSを使ってKundli Design(四角形の菱形と三角形)を描く方法は?
- 17. 四角形ではない四角形に四角形を適用できますか?
- 18. 拠点(形状四角)してください - 複数のサイズ - 対角配置
- 19. バックグラウンドで四角形の六角形を作成する方法は?
- 20. xsl-fo文字の周りに行/四角を置く方法
- 21. fillPolygonを使用して四角形を変換する方法
- 22. Pygame、四角形を移動し、先の位置にある古い四角形を削除します。
- 23. 文字列を四角形に合わせる方法は?
- 24. divとspan要素を同じ行に沿って中央に配置する方法は?
- 25. Mapboxを使ったGeoJSONリファレンスへのシェイプファイル
- 26. 四角形を四角形にマップするためのCATransform3Dを返します。
- 27. ループを使用して四角形を描く方法は?
- 28. Unityパッドのテクスチャは四角形になっていますか?
- 29. 線と四角形の交差を確認する方法は?
- 30. プレーン配列と四角形を使った衝突検出 -
ありがとうございます!これは素晴らしい。しかし、これは "const BUFFER_STEPS = 32;"のために何をするのですか? – SERG
芝生の文書http://turfjs.org/docs/#bufferをご覧ください。 turf.buffer()は、指定された半径の円を作成します。このサークルを構築するために使用するポイントの数は、数値によって定義されます。サークル自体は本当に必要ではないので、ここでは32(標準は64)を取った。たぶんあなたはあまり使うことができません。 –