tile-join을 사용하여 무거운 geojson을 XYZ tile로 변환하고 GitHub에서 호스팅하는 방법
4519 단어 GIStile-joinvectortile
대만 정부의 굉장함에 대해서는 서두의 기사를 읽어 주셨으면 합니다만, 이번은 GeoJSON의 처리에 대해서 쓰고 싶습니다.
첫째, 여기에 언급된 GeoJSON 파일 여기 . 확실히 8M 가까이 있습니다.
hfu 씨가 쓴 것처럼 tippecanoe 로 mbtiles 벡터 타일화해 mapbox 에 업로드 하는 것으로 Mapbox Studio 등으로부터도 데이터 소스로서 사용할 수 있습니다만, 가능하면 무료로 하고 싶은 곳입니다. 그래서 더욱 멋진 신탁이.
이것이다! 그래서 바로 실행에 옮겨 보았습니다.
이런 느낌의 맵을 표시할 수 있습니다.
URL은 여기
htps : //는 lsk. 기주 b. 이오 / p는 r 마시에 s - 치 s / 어서 x. HTML
GeoJSON에서 XYZ 타일 만들기
자세한 것은 github (을)를 보실 수 있으면 좋겠습니다만, 이하의 처리를 CircleCI 경유로 실시하고 있습니다
다음 Rakefile 실행
task :default do
sh "curl https://raw.githubusercontent.com/kiang/pharmacies/master/json/points.json | tippecanoe -f -o pharmacies.mbtiles --base-zoom=2"
sh "tile-join --output-to-directory=zxy --force --no-tile-compression --no-tile-size-limit pharmacies.mbtiles"
end
중요한 것은 Rakefile 부분이지만 먼저 GeoJSON을 다운로드하고
tippecanoe
명령을 사용하여 .mbtiles
파일을 생성하는 것입니다. --base-zoom=2
를 붙이지 않으면, 마음대로 끌어 버렸습니다.그런 다음
tile-join
명령으로 XYZ 타일을 만듭니다. --output-to-directory
옵션을 사용하여 XYZ 파일의 출력 대상을 지정할 수 있습니다.덧붙여서, 이 처리는 1분마다 CircleCI의 cron 트리거로 실행되고 있습니다. 자세한 내용은 .circleci/config.yml을 참조하십시오.
XYZ 타일 보기
Mapbox-GL JS 를 사용하고 있는 경우, 이하와 같은 기술로 호출할 수 있습니다.
map.on('load', function() {
map.addLayer({
"id": "pharmacies",
"type": "circle",
"source": {
"type": "vector",
"tiles": ["https://halsk.github.io/pharmacies-tiles/zxy/{z}/{x}/{y}.pbf"],
"maxzoom": 14
},
"source-layer": "pharmacies",
"paint": {
'circle-radius': 5,
"circle-stroke-width": 1,
// color circles by ethnicity, using a match expression
'circle-color': [
"case",
[
">",
["get", "mask_adult"],
200
],
"hsl(252, 91%, 42%)",
[
">",
["get", "mask_adult"],
100
],
"hsl(65, 97%, 57%)",
[
"<",
["get", "mask_adult"],
101
],
"hsl(0, 98%, 53%)",
"#000000"
]
}
})
});
tiles
그런데 GitHub Pages 의 URL 를 지정하고 있는 것이군요.circle-color
의 지정에서는, 재고의 수마다 빨강, 노랑, 파랑으로 색을 나누고 있습니다.실은, 아직 몇가지 신경이 쓰이는 Issue하고 싶은 일 이 몇개인가 있습니다만, 그쪽에 대해서는 또 이번.
파일을 분할하고 XYZ 벡터 타일화함으로써 무거운 GeoJSON을 가볍게 할 수 있었습니다.
이 데이터 소스는 아직 8M 정도이므로 그대로도 사용할 수 있습니다만, 보다 큰 데이터를 취급하는 경우, 이러한 방법도 검토해 봐 주면 좋지 않을까요.
hfu 씨, 감사합니다!
Reference
이 문제에 관하여(tile-join을 사용하여 무거운 geojson을 XYZ tile로 변환하고 GitHub에서 호스팅하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hal_sk/items/eb59cb474b0e5d37dde0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)