- Google Maps API에서 Leaflet + OpenStreetMap으로 전환 - 구마모토 지역 특화 타일 서버 Docker 컨테이너 추가 - PostgreSQL + PostGIS + Mapnik 스택으로 지도 타일 생성 - API 키 불필요한 오픈소스 지도 솔루션 구현 - 개발/프로덕션 환경 Docker Compose 설정 완료 - 빠른 로딩과 오프라인 지원 가능한 지도 서비스 주요 변경사항: - src/components/Map.tsx: Leaflet 기반으로 완전 재작성 - docker/map-server/: 구마모토 지역 타일 서버 구축 - docker-compose.yml, docker-compose.dev.yml: 지도 서버 연동 - package.json: leaflet, react-leaflet 의존성 추가
51 lines
1.7 KiB
Bash
51 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# 구마모토 지역 OSM 데이터 다운로드 및 설정
|
|
|
|
echo "구마모토 지역 지도 데이터 다운로드 중..."
|
|
|
|
# 구마모토 지역 경계 (대략적인 좌표)
|
|
# 북: 33.2, 남: 32.4, 동: 131.2, 서: 130.2
|
|
NORTH=33.2
|
|
SOUTH=32.4
|
|
EAST=131.2
|
|
WEST=130.2
|
|
|
|
# 구마모토 지역 OSM 데이터 다운로드
|
|
wget -O /tmp/kumamoto.osm.pbf \
|
|
"https://overpass-api.de/api/interpreter?data=[out:pbf][timeout:300];(relation[admin_level=4][name~'熊本'][name~'Kumamoto'];>;);out meta;"
|
|
|
|
# 대안: 일본 전체에서 구마모토 지역 추출
|
|
if [ ! -f /tmp/kumamoto.osm.pbf ] || [ ! -s /tmp/kumamoto.osm.pbf ]; then
|
|
echo "Overpass API에서 다운로드 실패, 대안 방법 사용..."
|
|
|
|
# 일본 큐슈 지역 데이터 다운로드 (더 안정적)
|
|
wget -O /tmp/kyushu.osm.pbf \
|
|
"http://download.geofabrik.de/asia/japan/kyushu-latest.osm.pbf"
|
|
|
|
# osmosis를 사용해 구마모토 지역만 추출
|
|
osmosis --read-pbf /tmp/kyushu.osm.pbf \
|
|
--bounding-box top=$NORTH left=$WEST bottom=$SOUTH right=$EAST \
|
|
--write-pbf /tmp/kumamoto.osm.pbf
|
|
fi
|
|
|
|
echo "구마모토 지역 데이터 다운로드 완료!"
|
|
|
|
# PostgreSQL 데이터베이스 설정
|
|
echo "데이터베이스 설정 중..."
|
|
|
|
# PostgreSQL 시작
|
|
service postgresql start
|
|
|
|
# 데이터베이스 생성
|
|
sudo -u postgres createdb kumamoto_map
|
|
sudo -u postgres psql -d kumamoto_map -c "CREATE EXTENSION postgis;"
|
|
sudo -u postgres psql -d kumamoto_map -c "CREATE EXTENSION hstore;"
|
|
|
|
# OSM 데이터를 PostgreSQL에 임포트
|
|
echo "OSM 데이터 임포트 중..."
|
|
sudo -u postgres osm2pgsql -d kumamoto_map -c /tmp/kumamoto.osm.pbf \
|
|
--hstore --style /usr/share/osm2pgsql/default.style --multi-geometry
|
|
|
|
echo "구마모토 지도 데이터 설정 완료!"
|