나는 사각형이있어서 사각형으로 채울 필요가있다. 나는 가운데 선을 찾고 그 선을 따라 정사각형을 배치하고 싶다. 그러나 turfjs와 같은 다른 라이브러리와 함께 mapboxgl에 사각형을 그리는 간단한 방법이 있습니까? 사각형의 중심과 한 변의 길이를 설정하고 사각형의 좌표를 얻으시겠습니까? 아이디어가 있으십니까? geojson으로 원을 배치하는 것은 문제가되지 않지만 4 개의 좌표를 계산해야하므로 사각형이있는 경우 문제가됩니다. 잔디와선을 따라 사각형을 배치하는 방법은 무엇입니까? (Geojson + mapbox)
2
A
답변
2
는이 작업을 해결하기 위해 손에 적절한 도구를 얻었다.
는 사각형의 양 라인의 거리가 당신이
사용 잔디를 원하는 라인 거리
나누기를 가져옵니다 : 그 일의
한 가지 방법은 다음과 같이 될 것이다. along()을 사용하여 라인을 따라 점을 얻으십시오.
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. div와 span 요소를 같은 선을 따라 가운데에 배치하는 방법은 무엇입니까?
- 2. MapBox GeoJSON 모든 마커를 지우시겠습니까?
- 3. Embedded Silverlight에서 사각형을 배치하는 방법은 무엇입니까?
- 4. 여러 GeoJSON 레이어가있는 Mapbox 정적 이미지를 생성하는 방법은 무엇입니까?
- 5. MapBox GL JS 맵에서 GeoJSON 레이어를로드하는 방법은 무엇입니까?
- 6. 이미지가있는 원 사이에 선을 배치하는 방법은 무엇입니까?
- 7. MultiLineString geoJSON 기능 유형이 mapbox-gl에서 지원됩니까?
- 8. GeoJSON 레이어가 MapBox GL에로드되지 않습니다. JS
- 9. ios의 데이터에 따라 컨트롤을 배치하는 방법은 무엇입니까?
- 10. Android에서 백그라운드에 따라 버튼을 배치하는 방법은 무엇입니까?
- 11. geojson
- 12. MAPBOX 배수 선을 그려서 색상을 변경하는 방법
- 13. Mapbox Store Locator에 대한 외부 GeoJSON 파일 가져 오기
- 14. mapbox-gl-js를 사용하여 geoJSON 배열에 즉석에서 마커 추가
- 15. HTML5는 선을 제대로 그리지 않지만 사각형을 그립니다.
- 16. MatLab에서 사각형을 치는 임의의 선을 선택하는 방법
- 17. Mapbox GL의 geojson 레이어에서 텍스트 필드를 어떻게 추가합니까?
- 18. 복잡한 (긴) GeoJSON 객체로 Mapbox 정적 이미지를 사용하면 오류가 발생합니다.
- 19. geoJson 데이터를 생성하는 방법은 무엇입니까?
- 20. 단일 glVertexPointer에서 같은 사각형을 배치하는 방법
- 21. UIView의 테이블 위에 그래픽 사각형을 배치하는 방법
- 22. d3.js의 텍스트 뒤에 사각형을 배치하는 방법
- 23. 차트에 선을 그리는 방법은 무엇입니까?
- 24. j2me로 카메라 화면에 선을 그리는 방법은 무엇입니까?
- 25. 원의 둘레를 따라 사각형을 유지
- 26. 배경 반복으로 인해 분할 선을 배치하는 방법
- 27. 클러스터 필터 geojson의 mapbox
- 28. 자녀의 너비에 따라 THREE.GROUP을 가운데에 배치하는 방법은 무엇입니까?
- 29. 넘치는 요소의 너비에 따라 콘텐츠를 가운데에 배치하는 방법은 무엇입니까?
- 30. HTML/CSS로 콘텐츠 높이에 따라 반응하는 배경을 배치하는 방법은 무엇입니까?
감사합니다! 이것은 위대합니다. 그러나 "const BUFFER_STEPS = 32;"에 대한 결과는 무엇입니까? – SERG
잔디 문서 http://turfjs.org/docs/#buffer를 살펴보십시오. turf.buffer()는 주어진 반지름으로 원을 만듭니다. 이 원을 만들기 위해 사용하는 포인트의 양은 숫자로 정의됩니다. 나는 서클 자체가 실제로 필요하지 않기 때문에 32 (표준 64)를 여기에서 가져갔습니다. 어쩌면 당신은 더 적은 것을 사용할 수 있습니다. –