feat: initialize sunrise with 100-player shared rooms

This commit is contained in:
2026-10-30 16:36:35 +09:00
commit 31d6eac4c2
257 changed files with 66063 additions and 0 deletions
File diff suppressed because one or more lines are too long
Binary file not shown.
+107
View File
@@ -0,0 +1,107 @@
{
"version": 1,
"sourceHash": "6f90fbd7927a723bbf3c46e68f66f22819666d374f069ae12087cc34a30af0c2",
"bufferHash": "d8cf0a36a46572060189e2ca9e9a61e448fb3d0b441abc346b56b7c4603e0d65",
"byteLength": 11036560,
"terrain": {
"origin": {
"latitude": 37.445,
"longitude": 126.964
},
"observerSurfaceElevation": 606.9063720703125
},
"counts": {
"tagged": 1756,
"levels": 953,
"fallback": 4034
},
"target": [
2389.237037522304,
-530.4983918666275,
1775.7760172638204
],
"meshes": [
{
"source": "tagged",
"vertices": 113280,
"position": 0,
"normal": 1359360,
"lightHeight": 2718720,
"index": 3171840,
"indexCount": 205500,
"indexType": "uint32",
"box": [
968.7347412109375,
-581.7264404296875,
-1581.2288818359375,
4514.0634765625,
-475.2237243652344,
3871.245361328125
],
"sphere": [
2741.3991088867188,
-528.4750823974609,
1145.0082397460938,
3153.873357261772
]
},
{
"source": "levels",
"vertices": 59898,
"position": 3993840,
"normal": 4712616,
"lightHeight": 5431392,
"index": 5670984,
"indexCount": 108384,
"indexType": "uint16",
"box": [
972.2301025390625,
-578.3482666015625,
-1654.0888671875,
4493.0498046875,
-490.0949401855469,
3798.428466796875
],
"sphere": [
2732.6399536132812,
-534.2216033935547,
1072.1697998046875,
2836.1249323113802
]
},
{
"source": "fallback",
"vertices": 119274,
"position": 5887752,
"normal": 7319040,
"lightHeight": 8750328,
"index": 9227424,
"indexCount": 190140,
"indexType": "uint32",
"box": [
970.5235595703125,
-583.4852294921875,
-1658.1075439453125,
4522.517578125,
-376.1947937011719,
3883.84912109375
],
"sphere": [
2746.5205688476562,
-479.8400115966797,
1112.8707885742188,
3129.6090105644394
]
}
],
"spill": {
"offset": 9987984,
"size": 1024,
"bounds": [
955.9872155081416,
-1671.8254935390196,
3580.3892490150624,
5569.265821880235
]
}
}
File diff suppressed because one or more lines are too long
+242
View File
@@ -0,0 +1,242 @@
{
"bbox": [
126.975,
37.41,
127.015,
37.46
],
"count": 6743,
"types": {
"school": 36,
"yes": 4345,
"house": 1366,
"commercial": 493,
"church": 20,
"retail": 3,
"residential": 430,
"warehouse": 48,
"industrial": 1,
"hospital": 1
},
"license": "CC-BY-2.0-KR",
"licenses": {
"VWorld": "CC-BY-2.0-KR"
},
"licenseUrls": {
"VWorld": "https://creativecommons.org/licenses/by/2.0/kr/"
},
"distribution": {
"notice": "source.html",
"reviewedAt": "2026-10-30",
"note": "Buildings derived exclusively from VWorld GIS building data. Retain source attribution, CC BY 2.0 KR terms and modification notices."
},
"heightTags": 1756,
"levelTags": 2707,
"heightSources": {
"height": 1756,
"levels": 953,
"fallback": 4034
},
"selection": {
"officialAdded": 6743,
"officialOverlapsSkipped": [
"vworld/2004200171814364088600000000/0",
"vworld/2006199521724360085400000000/0",
"vworld/2010199818314386251500000000/0",
"vworld/2012200245534363150500000000/0",
"vworld/2013199138114368963400000000/0",
"vworld/2013199301334389900400000000/0",
"vworld/2013199451814357330000000000/0",
"vworld/2013199590864384344700000000/0",
"vworld/2013199631994387415500000000/0",
"vworld/2013200257034363366000000000/0",
"vworld/2013200698154356969200000000/0",
"vworld/2013200783624356557100000000/0",
"vworld/2014199665444344625800000000/0",
"vworld/2014200223604382287600000000/0",
"vworld/2015200335254363151700000000/0",
"vworld/2016198779184364087400000000/0",
"vworld/2016200178494379485400000000/0",
"vworld/2017199485094344337500000000/0",
"vworld/2017199567794344698300000000/0",
"vworld/2017200421314391944400000000/0",
"vworld/2017200835224358449100000000/0",
"vworld/2018199701784344736400000000/0",
"vworld/2018200724084357596200000000/0",
"vworld/2018200748444356685800000000/0",
"vworld/2021199547984359315300000000/0",
"vworld/2021199644984358812100000000/0",
"vworld/2021199669674359468500000000/0",
"vworld/1953200040624361546500000000/0",
"vworld/1963198595404350511100000000/0",
"vworld/1977200681434382098600000000/0",
"vworld/1981200307244364150800000000/0",
"vworld/1981200716724357928100000000/0",
"vworld/1982200073724395779600000000/0",
"vworld/1982200080414390527700000000/0",
"vworld/1984198610034349994400000000/0",
"vworld/1984200800414355499000000000/0",
"vworld/1984200866674357003400000000/0",
"vworld/1984200891194356084200000000/0",
"vworld/1985199658084357385100000000/0",
"vworld/1985199729734374194300000000/0",
"vworld/1985199735064373656300000000/0",
"vworld/1985199883654372860700000000/0",
"vworld/1986199591064374049300000000/0",
"vworld/1986199601554360651400000000/0",
"vworld/1988199756264373164900000000/0",
"vworld/1989199660774372923200000000/0",
"vworld/1989199721734374334400000000/0",
"vworld/1990199643224357691000000000/0",
"vworld/1991199657404344707300000000/0",
"vworld/0000197729374350448800000000/0",
"vworld/0000198010484351177600000000/0",
"vworld/0000198099184352399200000000/0",
"vworld/0000198368944348908600000000/0",
"vworld/0000198372574348879900000000/0",
"vworld/0000198399504344098600000000/0",
"vworld/0000198521154348630300000000/0",
"vworld/0000198552814349641100000000/0",
"vworld/0000198590874351082200000000/0",
"vworld/0000198628594349645100000000/0",
"vworld/0000198654504351275600000000/0",
"vworld/0000199283204390016100000000/0",
"vworld/0000199301924389747900000000/0",
"vworld/0000199331864389641400000000/0",
"vworld/0000199332504367872700000000/0",
"vworld/0000199397484384272800000000/0",
"vworld/0000199400864384286900000000/0",
"vworld/0000199428694386752900000000/0",
"vworld/0000199437344345537500000000/0",
"vworld/0000199441924345552900000000/0",
"vworld/0000199448834345556000000000/0",
"vworld/0000199450314345501600000000/0",
"vworld/0000199468894388220600000000/0",
"vworld/0000199512774365846900000000/0",
"vworld/0000199569864374373300000000/0",
"vworld/0000199602144386588000000000/0",
"vworld/0000199606254386556400000000/0",
"vworld/0000199608634386574900000000/0",
"vworld/0000199650954387734500000000/0",
"vworld/0000199664274344505900000000/0",
"vworld/0000199667464344640100000000/0",
"vworld/0000199724414384357700000000/0",
"vworld/0000199750564368776800000000/0",
"vworld/0000199808484386197700000000/0",
"vworld/0000199816764374245600000000/0",
"vworld/0000199822754374071900000000/0",
"vworld/0000199828244353312100000000/0",
"vworld/0000199962124394087900000000/0",
"vworld/0000199964494380722500000000/0",
"vworld/0000199970454378684000000000/0",
"vworld/0000199972844359027100000000/0",
"vworld/0000199974064378744000000000/0",
"vworld/0000199974694395709400000000/0",
"vworld/0000199975154359051300000000/0",
"vworld/0000199977794380667300000000/0",
"vworld/0000199983414395809900000000/0",
"vworld/0000199985354380678900000000/0",
"vworld/0000199986354393567200000000/0",
"vworld/0000199988244388649100000000/0",
"vworld/0000199989474359098800000000/0",
"vworld/0000199992794390389400000000/0",
"vworld/0000200005044393480300000000/0",
"vworld/0000200011654393479900000000/0",
"vworld/0000200024044392489000000000/0",
"vworld/0000200046374361615400000000/0",
"vworld/0000200046834361452400000000/0",
"vworld/0000200054224391693000000000/0",
"vworld/0000200078614390589000000000/0",
"vworld/0000200136914390204900000000/0",
"vworld/0000200153384380355500000000/0",
"vworld/0000200177294380365400000000/0",
"vworld/0000200179874379543600000000/0",
"vworld/0000200180734380578600000000/0",
"vworld/0000200184624379487400000000/0",
"vworld/0000200215244381437100000000/0",
"vworld/0000200215934381366300000000/0",
"vworld/0000200220244383099300000000/0",
"vworld/0000200222924383162700000000/0",
"vworld/0000200223374382178200000000/0",
"vworld/0000200225674383227900000000/0",
"vworld/0000200226684382262100000000/0",
"vworld/0000200228374383292600000000/0",
"vworld/0000200231024383356800000000/0",
"vworld/0000200233884382404300000000/0",
"vworld/0000200249904381500000000000/0",
"vworld/0000200250964381436300000000/0",
"vworld/0000200257314383513600000000/0",
"vworld/0000200270954384559700000000/0",
"vworld/0000200292304384768500000000/0",
"vworld/0000200292624384690100000000/0",
"vworld/0000200293724383954800000000/0",
"vworld/0000200295034384033200000000/0",
"vworld/0000200295154384615400000000/0",
"vworld/0000200327724365028500000000/0",
"vworld/0000200344264362922400000000/0",
"vworld/0000200548734358107000000000/0",
"vworld/0000200548754358014600000000/0",
"vworld/0000200553304358141100000000/0",
"vworld/0000200553344357928300000000/0",
"vworld/0000200555384358051300000000/0",
"vworld/0000200558924357979800000000/0",
"vworld/0000200609294395359200000000/0",
"vworld/0000200619544359246100000000/0",
"vworld/0000200644214359210300000000/0",
"vworld/0000200651584382384400000000/0",
"vworld/0000200662824394260400000000/0",
"vworld/0000200667144392648700000000/0",
"vworld/0000200794014383339800000000/0",
"vworld/0000200804464383101700000000/0",
"vworld/0000200819744383548900000000/0",
"vworld/0000200830154384590300000000/0",
"vworld/0000200836084384275100000000/0",
"vworld/0000200838954384330600000000/0",
"vworld/0000200840414384162100000000/0",
"vworld/0000200848214384226200000000/0",
"vworld/0000200849234384145000000000/0",
"vworld/0000200923424383813000000000/0",
"vworld/0000200927704383870300000000/0",
"vworld/1855200570064358187500000000/0",
"vworld/1898199959784359239600000000/0",
"vworld/1939198202944349372000000000/0",
"vworld/1942200048044361522000000000/0",
"vworld/1942200049984361567000000000/0",
"vworld/1950200560504357940000000000/0",
"vworld/1953199443234345601800000000/0",
"vworld/1955198593804350255200000000/0",
"vworld/1967200461234387878300000000/0",
"vworld/1980199428524389091200000000/0",
"vworld/1982200097844390512800000000/0",
"vworld/1982200102004390499800000000/0",
"vworld/1982200233594364216600000000/0",
"vworld/1982200890684358639400000000/0",
"vworld/1983199855174372766000000000/0",
"vworld/1984198604644349927900000000/0",
"vworld/1984198605844350051300000000/0",
"vworld/1985199820014374225600000000/0",
"vworld/1986200595694395192900000000/0",
"vworld/1995200140784363713300000000/0",
"vworld/1995200183704351617400000000/0",
"vworld/1998200981194386109600000000/0",
"vworld/1999198204514349658700000000/0",
"vworld/2004199904224351989200000000/0",
"vworld/2009199596284386844200000000/0",
"vworld/2009199601324386892400000000/0"
]
},
"official": {
"archive": "AL_D010_41_20260719.zip",
"sha256": "cec9fffa5627a6e27a25074e3d96f24fae6557453c14b45c623268ef4f35c4eb",
"crs": "EPSG:5186",
"url": "https://www.vworld.kr/dtmk/dtmk_ntads_s002.do?svcCde=NA&dsId=18",
"license": "CC-BY-2.0-KR",
"rawRegionalFeatures": 6986,
"fieldDefinitions": "data/references/gwacheon/vworld-columns.xlsx"
},
"limitations": [
"VWorld-only footprints and attributes. Snapshot can contain older footprints.",
"Overlaps >0.5m² between VWorld records are excluded, preferring measured height or levels.",
"Missing heights remain explicitly estimated; terrain is still Copernicus DSM, not surveyed ground."
]
}
+12
View File
@@ -0,0 +1,12 @@
<!doctype html><html lang="ko"><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>과천 건물 데이터</title><style>body{font:16px/1.8 sans-serif;max-width:850px;margin:40px auto;padding:20px;color:#24313d}td,th{padding:8px;border:1px solid #bbb}table{border-collapse:collapse}</style>
<h1>과천 건물 — VWorld</h1>
<p>2026-10-30. 국토교통부 GIS건물통합정보(VWorld)만으로 생성한 건물 6,743개입니다. 범위는 경도 126.975~127.015, 위도 37.410~37.460이며 과천시 전체 행정구역과 일치하지 않습니다. 외곽선·높이·층수의 선택과 가공에 OSM 건물 자료를 사용하지 않습니다.</p>
<p>원본은 사용자 제공 AL_D010_41_20260719.zip입니다. 경기도 SHP 세 묶음에서 범위를 추출했습니다. 원본 좌표계는 EPSG:5186, 문자열은 CP949이며 A16(높이, m), A26(지상층수)를 사용합니다. 0·빈 값·숫자 오버플로는 높이 정보로 사용하지 않습니다. 배포일은 개별 건물의 측량·준공 확인일을 뜻하지 않습니다.</p>
<p>좌표 변환, 영역 추출, 다중 폴리곤 분리 및 용도 분류를 적용했습니다. VWorld 건물끼리 면적 0.5㎡를 초과해 겹치는 경우 실높이·층수 보유 레코드를 우선하여 183개를 제외했습니다. 제외 목록은 메타데이터에 기록했습니다. 원본 자료에도 오래된 외곽선이나 누락이 있을 수 있습니다.</p>
<table><tr><th>화면 색</th><th>높이 기준</th></tr><tr><td>밝은 회색 · 1,756개</td><td>VWorld 높이 자료. 현장 측량으로 검증한 값은 아닙니다.</td></tr><tr><td>청회색 · 953개</td><td>지상층수 × 3m. 층고·지붕 높이의 추정값입니다.</td></tr><tr><td>갈색 계열 · 4,034개</td><td>높이·층수 미상. 용도별 임시 높이(아파트 15m, 주거 9m, 단독주택 6m, 상업·학교 12m, 온실·지붕 3m, 기타 9m).</td></tr></table>
<p>지반은 <a href="/terrain/source.html">Copernicus DSM</a> 주변 낮은 표면으로 추정합니다. 실제 지면 DEM이 아니므로 건물 매몰과 높이 오차가 남습니다. 야간 조명은 시각적 근사이며 실제 조명 위치·빛의 차폐를 계산하지 않습니다. 정밀 일출 차폐 검증용 모델이 아닙니다.</p>
<h2>출처와 이용조건</h2>
<p>출처: <a href="https://www.vworld.kr/dtmk/dtmk_ntads_s002.do?svcCde=NA&amp;dsId=18">국토교통부 GIS건물통합정보 / VWorld</a> · <a href="https://creativecommons.org/licenses/by/2.0/kr/">CC BY 2.0 대한민국</a>. 2026-10-30 공식 자료 페이지의 CC BY 표시와 연결된 라이선스를 확인했습니다.</p>
<p>가공 건물 자료를 이용·재배포할 때 원저작자, 자료명, 원본 링크, 라이선스 및 가공 사실을 유지해야 합니다. 원본의 저작권·면책 표시를 제거하거나 허용된 이용을 제한하는 조건·기술적 보호조치를 추가할 수 없습니다. 원본 자료는 있는 그대로 제공되며, 제공자는 라이선스에서 정한 범위에서 보증과 책임을 부담하지 않습니다. 상세 조건은 <a href="https://creativecommons.org/licenses/by/2.0/kr/legalcode.ko">이용허락규약</a>을 따릅니다.</p>
<p>이 안내는 과천 건물 자료에 해당합니다. 다른 장면의 해안선과 정상 구조물 위치 등에 사용한 자료는 각 출처 안내를 따릅니다.</p>
<p><a href="gwacheon.geojson" download>VWorld 가공 외곽선·속성 다운로드</a> · <a href="metadata.json">원본 SHA256·가공 및 제외 내역</a></p><p><a href="/data-sources.html">자료별 라이선스·가공 데이터 다운로드</a></p></html>
Binary file not shown.
Binary file not shown.
Binary file not shown.
+27
View File
@@ -0,0 +1,27 @@
<!doctype html><html lang="ko"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>데이터 출처와 이용조건</title>
<style>body{max-width:850px;margin:40px auto;padding:0 24px;font:16px/1.8 system-ui;color:#24313d}a{color:#25654e}td,th{border:1px solid #ccc;padding:10px}table{border-collapse:collapse}</style>
<h1>데이터 출처와 이용조건</h1>
<p>자료별 이용조건은 서로 다릅니다. 원본은 출처별로 보관하며 웹에서는 좌표 변환·보간·선별한 자료를 사용합니다. 웹용 파일을 수정되지 않은 원본으로 표시하지 않습니다.</p>
<h2>높이와 해안 표시</h2>
<p>하조대·기사문 높이 격자는 Copernicus 자료만 좌표 변환·보간합니다. OSM 해안선으로 높이를 낮추거나 육지 최저 높이·바다 칸 높이를 덮어쓰지 않습니다. OSM 경계·표면 마스크는 별도 파일이며 화면에서 육지 표시, 모래 재질, 물결·거품 및 이동 경계를 결정합니다. 각 높이 파일과 해안 자료의 조건은 아래에 구분합니다.</p>
<p>관악산은 원본 높이 격자와 기존 정상 보정 모델을 유지합니다. 정상 모델은 사진 해석·추정 높이와 일부 OSM 위치를 사용하며, 최적화를 위한 사전 생성 메시도 배포합니다. 이를 순수 Copernicus 원본 또는 화면 단계에서만 계산한 자료라고 표시하지 않습니다. <a href="/terrain/summit-reconstruction.html">정상 모델의 가공 내역</a>.</p>
<h2>Copernicus GLO-30 높이</h2>
<p>produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved</p>
<p>The organisations in charge of the Copernicus programme by law or by delegation do not incur any liability for any use of the Copernicus WorldDEM-30.</p>
<p><a href="https://dataspace.copernicus.eu/sites/default/files/media/files/2025-06/copernicus_contributing_mission_data_access_v2_cop_dem_licenses.pdf">공식 이용조건 GLO-30-F</a>. 재배포 시 제6조의 지정 출처·면책·비보증 및 후속 이용자에 관한 의무를 유지하고, 제공 기관의 보증·승인을 암시하지 않아야 합니다. <a href="/terrain/source.html">관악산 높이 출처</a>.</p>
<h2>OpenStreetMap 경계·경로·시설 위치</h2>
<p>© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>. 아래 OSM 기반 가공 지리 자료는 <a href="https://opendatacommons.org/licenses/odbl/1-0/">Open Database License 1.0 (ODbL)</a>로 제공합니다. 원본의 출처·라이선스 고지를 유지해야 하며, 파생 데이터베이스를 공개 이용하면 ODbL의 동일조건 및 기계 판독 가능한 자료 또는 변경 내역·방법 제공 조건을 따라야 합니다. 다른 출처의 자료 전체를 ODbL로 재허락한다는 뜻은 아닙니다.</p>
<ul>
<li>하조대: <a href="/terrain/hajodae/coast.json" download>해안선·해변</a> · <a href="/terrain/hajodae/surface.png" download>표면 마스크</a> · <a href="/terrain/hajodae/metadata.json">가공·원본 URL·해시·파일별 조건</a></li>
<li>기사문: <a href="/terrain/gisamun/coast.json" download>해안선·추정 해변</a> · <a href="/terrain/gisamun/surface.png" download>표면 마스크</a> · <a href="/terrain/gisamun/metadata.json">가공·원본 URL·해시·파일별 조건</a></li>
<li><a href="/osm-derived.json" download>정상 경로·시설 위치·추정 제어점 및 기사문항 입력 자료</a>. 길 폭·시설 치수·보정 높이·항만 안쪽 경계는 자체 추정입니다. OSM의 실측값으로 해석하면 안 됩니다.</li>
</ul>
<p>표면 PNG는 R=육지, G=모래, B=해안선 부호 거리이며 Copernicus 높이를 포함하지 않습니다. 투영·간격은 각 메타데이터를 따릅니다.</p>
<h2>VWorld 건물</h2>
<p>국토교통부 GIS건물통합정보 / VWorld, <a href="https://creativecommons.org/licenses/by/2.0/kr/">CC BY 2.0 KR</a>. OSM 건물을 병합하거나 높이를 보완하지 않습니다. <a href="/buildings/source.html">출처·가공 내역·다운로드·재배포 조건</a>.</p>
<h2>기상·재질·글꼴</h2>
<p><a href="https://open-meteo.com/">Weather data by Open-Meteo</a>, <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. 시간 보간·강우량 합산 및 시각 효과 변환을 적용했습니다. 무료 API는 <a href="https://open-meteo.com/en/terms">비상업 용도와 호출량 제한</a>을 따릅니다.</p>
<p>Poly Haven 지면 재질: <a href="https://polyhaven.com/license">CC0</a> · <a href="/terrain/materials/sources.json">파일별 출처</a>. 참고사진과 거리뷰 원본은 앱에 포함하지 않습니다.</p>
<p>Pretendard: <a href="/fonts/Pretendard-LICENSE.txt">저작권·SIL OFL 1.1</a>. Gowun Dodum: <a href="/fonts/GowunDodum-OFL.txt">저작권·SIL OFL 1.1</a>. <a href="/licenses.txt">프로그램 라이브러리 라이선스</a>.</p>
</html>
+94
View File
@@ -0,0 +1,94 @@
Copyright 2021 The Gowun Dodum Project Authors (https://github.com/yangheeryu/Gowun-Dodum)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
+94
View File
@@ -0,0 +1,94 @@
Copyright (c) 2021, Kil Hyung-jin (https://github.com/orioncactus/pretendard),
with Reserved Font Name Pretendard.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
+257
View File
@@ -0,0 +1,257 @@
SUNRISE — browser library notices
License texts copied from the installed packages.
Data and model sources are listed separately in the application.
three 0.185.1
License: MIT
Source: https://github.com/mrdoob/three.js
The MIT License
Copyright © 2010-2026 three.js authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
========================================================================
suncalc 2.0.1
License: BSD-2-Clause
Source: git://github.com/mourner/suncalc.git
Copyright (c) 2026, Volodymyr Agafonkin
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
========================================================================
socket.io-client 4.8.4
License: MIT
Source: git+https://github.com/socketio/socket.io.git
The MIT License (MIT)
Copyright (c) 2014-present Guillermo Rauch and Socket.IO contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
========================================================================
socket.io-parser 4.2.7
License: MIT
Source: git+https://github.com/socketio/socket.io.git
(The MIT License)
Copyright (c) 2014-present Guillermo Rauch and Socket.IO contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the 'Software'), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
========================================================================
engine.io-client 6.6.7
License: MIT
Source: git+https://github.com/socketio/socket.io.git
(The MIT License)
Copyright (c) 2014-present Guillermo Rauch and Socket.IO contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
========================================================================
engine.io-parser 5.2.3
License: MIT
Source: https://github.com/socketio/socket.io.git
(The MIT License)
Copyright (c) 2014-present Guillermo Rauch and Socket.IO contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
========================================================================
@socket.io/component-emitter 3.1.2
License: MIT
Source: https://github.com/socketio/emitter.git
(The MIT License)
Copyright (c) 2014 Component contributors <dev@component.io>
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
========================================================================
debug 4.4.3
License: MIT
Source: git://github.com/debug-js/debug.git
(The MIT License)
Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2018-2021 Josh Junon
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the 'Software'), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
========================================================================
ms 2.1.3
License: MIT
Source: vercel/ms
The MIT License (MIT)
Copyright (c) 2020 Vercel, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+457
View File
@@ -0,0 +1,457 @@
{
"version": 1,
"units": "metres",
"upAxis": "Y",
"northAxis": "-Z",
"dimensionsEstimated": true,
"photographsEmbedded": false,
"sourceConstants": "src/constants/structures.ts",
"assets": [
{
"id": "summit-mast",
"file": "summit-mast.glb",
"kind": "tower",
"latitude": 37.4450675,
"longitude": 126.9638043,
"heading": 0,
"dimensionsEstimated": true,
"positionEstimated": false,
"source": "OSM node/3445797250",
"dimensions": {
"height": 24,
"width": 2.4
},
"origin": "base contact plane",
"terrainSupportAnchors": []
},
{
"id": "south-tower-1",
"file": "south-tower-1.glb",
"kind": "tower",
"latitude": 37.4401643,
"longitude": 126.9642555,
"heading": 0,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "OSM node/4262612712 + recent-02.jpg",
"dimensions": {
"height": 48,
"width": 5
},
"origin": "base contact plane",
"terrainSupportAnchors": []
},
{
"id": "south-tower-2",
"file": "south-tower-2.glb",
"kind": "tower",
"latitude": 37.4400359,
"longitude": 126.9640016,
"heading": 0,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "OSM node/4736107159 + recent-02.jpg",
"dimensions": {
"height": 36,
"width": 3.2
},
"origin": "base contact plane",
"terrainSupportAnchors": []
},
{
"id": "south-tower-3",
"file": "south-tower-3.glb",
"kind": "tower",
"latitude": 37.44012,
"longitude": 126.96448,
"heading": 0,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "recent-02.jpg; approximate cluster offset",
"dimensions": {
"height": 40,
"width": 3
},
"origin": "base contact plane",
"terrainSupportAnchors": []
},
{
"id": "south-tower-4",
"file": "south-tower-4.glb",
"kind": "tower",
"latitude": 37.44003,
"longitude": 126.96472,
"heading": 0,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "recent-02.jpg; approximate cluster offset",
"dimensions": {
"height": 34,
"width": 2.4
},
"origin": "base contact plane",
"terrainSupportAnchors": []
},
{
"id": "weather-radar",
"file": "weather-radar.glb",
"kind": "radar",
"latitude": 37.444028,
"longitude": 126.963808,
"heading": 0,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "OSM way/337498781 (identity inferred), photo-01/09/10",
"dimensions": {
"radius": 4,
"buildingHeight": 7
},
"origin": "base contact plane",
"terrainSupportAnchors": []
},
{
"id": "north-deck",
"file": "north-deck.glb",
"kind": "deck",
"latitude": 37.44516,
"longitude": 126.96405,
"heading": -20,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "deck-19/20/22; position and dimensions estimated",
"dimensions": {
"width": 3,
"length": 7,
"stairLength": 7,
"stairDrop": 3
},
"origin": "upper deck surface",
"terrainSupportAnchors": [
{
"position": [
-1.5,
-0.32,
3.5
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-0.32,
2.0999999046325684
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-0.32,
0.7000002861022949
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-0.32,
-0.7000002861022949
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-0.32,
-2.0999999046325684
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-0.32,
-3.5
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-0.8200000596046448,
-4.6666669845581055
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-1.3200001192092896,
-5.833333969116211
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-1.82,
-7.0
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-2.32,
-8.166666984558105
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-2.82,
-9.333333015441895
],
"postWidth": 0.1
},
{
"position": [
-1.5,
-3.32,
-10.5
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.32,
3.5
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.32,
2.0999999046325684
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.32,
0.7000002861022949
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.32,
-0.7000002861022949
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.32,
-2.0999999046325684
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.32,
-3.5
],
"postWidth": 0.1
},
{
"position": [
1.5,
-0.8200000596046448,
-4.6666669845581055
],
"postWidth": 0.1
},
{
"position": [
1.5,
-1.3200001192092896,
-5.833333969116211
],
"postWidth": 0.1
},
{
"position": [
1.5,
-1.82,
-7.0
],
"postWidth": 0.1
},
{
"position": [
1.5,
-2.32,
-8.166666984558105
],
"postWidth": 0.1
},
{
"position": [
1.5,
-2.82,
-9.333333015441895
],
"postWidth": 0.1
},
{
"position": [
1.5,
-3.32,
-10.5
],
"postWidth": 0.1
}
]
},
{
"id": "yeonjudae-viewpoint",
"file": "yeonjudae-viewpoint.glb",
"kind": "deck",
"latitude": 37.4441528,
"longitude": 126.9644299,
"heading": 10,
"dimensionsEstimated": true,
"positionEstimated": true,
"source": "OSM node/5963311985; deck outline and dimensions estimated",
"dimensions": {
"width": 5,
"length": 4,
"stairLength": 4,
"stairDrop": 1.5
},
"origin": "upper deck surface",
"terrainSupportAnchors": [
{
"position": [
-2.5,
-0.32,
2.0
],
"postWidth": 0.1
},
{
"position": [
-2.5,
-0.32,
0.6666665077209473
],
"postWidth": 0.1
},
{
"position": [
-2.5,
-0.32,
-0.6666667461395264
],
"postWidth": 0.1
},
{
"position": [
-2.5,
-0.32,
-2.0
],
"postWidth": 0.1
},
{
"position": [
-2.5,
-0.8200000596046448,
-3.3333334922790527
],
"postWidth": 0.1
},
{
"position": [
-2.5,
-1.32,
-4.666666507720947
],
"postWidth": 0.1
},
{
"position": [
-2.5,
-1.82,
-6.0
],
"postWidth": 0.1
},
{
"position": [
2.5,
-0.32,
2.0
],
"postWidth": 0.1
},
{
"position": [
2.5,
-0.32,
0.6666665077209473
],
"postWidth": 0.1
},
{
"position": [
2.5,
-0.32,
-0.6666667461395264
],
"postWidth": 0.1
},
{
"position": [
2.5,
-0.32,
-2.0
],
"postWidth": 0.1
},
{
"position": [
2.5,
-0.8200000596046448,
-3.3333334922790527
],
"postWidth": 0.1
},
{
"position": [
2.5,
-1.32,
-4.666666507720947
],
"postWidth": 0.1
},
{
"position": [
2.5,
-1.82,
-6.0
],
"postWidth": 0.1
}
]
}
]
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+894
View File
@@ -0,0 +1,894 @@
{
"attribution": "© OpenStreetMap contributors",
"sourceUrl": "https://www.openstreetmap.org/copyright",
"license": "ODbL-1.0",
"licenseUrl": "https://opendatacommons.org/licenses/odbl/1-0/",
"scope": "Geographic input collection below, including our estimated additions. Not a relicensing of Copernicus elevation grids, VWorld buildings, photographs, or model artwork.",
"processing": "OSM route selection and facility positions; estimated widths, footprints, dimensions and terrain control elevations. These are not surveyed values.",
"summit": {
"routes": [
{
"id": "way/337498789",
"label": "정상 암반길",
"width": 3.2,
"points": [
[
126.9642427,
37.4452121
],
[
126.9642346,
37.4450861
],
[
126.9641628,
37.4449609
],
[
126.9641194,
37.4449084
],
[
126.9641086,
37.4448542
],
[
126.9641235,
37.4447614
],
[
126.9641299,
37.4446834
],
[
126.9641627,
37.4446443
],
[
126.9641937,
37.4446176
],
[
126.9641853,
37.4445946
]
]
},
{
"id": "way/37751526",
"label": "남쪽 하산 계단길",
"width": 2.4,
"points": [
[
126.9652191,
37.4426477
],
[
126.965157,
37.4427111
],
[
126.9650832,
37.4428437
],
[
126.9649758,
37.4428823
],
[
126.9646903,
37.4431718
],
[
126.9644942,
37.4433977
],
[
126.9645363,
37.4435795
],
[
126.9644974,
37.4437541
],
[
126.9645055,
37.4438755
],
[
126.9644849,
37.4439916
],
[
126.9644634,
37.4441563
],
[
126.9644231,
37.4442014
],
[
126.9643909,
37.4441957
],
[
126.9643509,
37.4442247
],
[
126.9642731,
37.4442455
],
[
126.9642271,
37.4442888
],
[
126.9641796,
37.4443334
],
[
126.9641677,
37.4443904
],
[
126.9641998,
37.4444216
],
[
126.9642101,
37.444477
],
[
126.9641853,
37.4445946
]
]
},
{
"id": "way/337498787",
"label": "동쪽 계단길",
"width": 2.2,
"points": [
[
126.9646956,
37.4448264
],
[
126.9644011,
37.4449652
],
[
126.9641628,
37.4449609
]
]
},
{
"id": "way/337498788",
"label": "북쪽 능선길",
"width": 2.4,
"points": [
[
126.9652188,
37.445905
],
[
126.9651599,
37.4458421
],
[
126.9651204,
37.445817
],
[
126.9650739,
37.4458262
],
[
126.965047,
37.4458008
],
[
126.9650012,
37.4458049
],
[
126.9649836,
37.4457585
],
[
126.9649235,
37.4457452
],
[
126.9649129,
37.4458003
],
[
126.9648793,
37.445814
],
[
126.9648108,
37.4457987
],
[
126.9648084,
37.4457327
],
[
126.9647692,
37.4457201
],
[
126.9647305,
37.4457475
],
[
126.9646677,
37.4457742
],
[
126.9646443,
37.4457812
],
[
126.9646393,
37.4457277
],
[
126.9646373,
37.4456519
],
[
126.9646231,
37.4456153
],
[
126.9645478,
37.4456006
],
[
126.9645194,
37.4455309
],
[
126.9645211,
37.4455051
],
[
126.9644963,
37.4454888
],
[
126.9645078,
37.4454665
],
[
126.9644384,
37.4454786
],
[
126.9644443,
37.4454544
],
[
126.9644447,
37.4454142
],
[
126.9644298,
37.4453984
],
[
126.9644073,
37.4454045
],
[
126.9644102,
37.4454574
],
[
126.9643506,
37.445427
],
[
126.9642934,
37.4454174
],
[
126.9642857,
37.4454008
],
[
126.9643346,
37.4453985
],
[
126.9643315,
37.4453643
],
[
126.9642929,
37.4453472
],
[
126.9642727,
37.4453499
],
[
126.9642484,
37.4453197
],
[
126.9642584,
37.4452722
],
[
126.9642427,
37.4452121
]
]
}
],
"structures": {
"towers": [
{
"id": "summit-mast",
"latitude": 37.4450675,
"longitude": 126.9638043,
"height": 24,
"width": 2.4,
"source": "OSM node/3445797250",
"estimatedPosition": false
},
{
"id": "south-tower-1",
"latitude": 37.4401643,
"longitude": 126.9642555,
"height": 48,
"width": 5,
"source": "OSM node/4262612712 + recent-02.jpg",
"estimatedPosition": true
},
{
"id": "south-tower-2",
"latitude": 37.4400359,
"longitude": 126.9640016,
"height": 36,
"width": 3.2,
"source": "OSM node/4736107159 + recent-02.jpg",
"estimatedPosition": true
},
{
"id": "south-tower-3",
"latitude": 37.44012,
"longitude": 126.96448,
"height": 40,
"width": 3,
"source": "recent-02.jpg; approximate cluster offset",
"estimatedPosition": true
},
{
"id": "south-tower-4",
"latitude": 37.44003,
"longitude": 126.96472,
"height": 34,
"width": 2.4,
"source": "recent-02.jpg; approximate cluster offset",
"estimatedPosition": true
}
],
"radar": {
"latitude": 37.444028,
"longitude": 126.963808,
"radius": 4,
"buildingHeight": 7,
"source": "OSM way/337498781 (identity inferred), photo-01/09/10"
},
"decks": [],
"railing": {
"height": 1.15,
"postWidth": 0.1,
"maxSpan": 1.5
},
"deck": {
"thickness": 0.18,
"clearance": 0.25,
"plankWidth": 0.18
}
},
"terrainControls": [
{
"label": "시작 위치 암반",
"latitude": 37.44472,
"longitude": 126.96422,
"elevation": 620
},
{
"label": "북쪽 정상 암반",
"latitude": 37.44503,
"longitude": 126.96394,
"elevation": 629
},
{
"label": "정상 표지석 일대 암반",
"latitude": 37.4451398,
"longitude": 126.9642379,
"elevation": 629
},
{
"label": "정상에서 내려오는 넓은 석판",
"latitude": 37.44494,
"longitude": 126.9642,
"elevation": 626
},
{
"label": "중간 안부",
"latitude": 37.4444,
"longitude": 126.96402,
"elevation": 606
},
{
"label": "레이돔 암봉",
"latitude": 37.444028,
"longitude": 126.963808,
"elevation": 628
},
{
"label": "레이돔 북쪽 받침",
"latitude": 37.44408,
"longitude": 126.963808,
"elevation": 628
},
{
"label": "레이돔 남쪽 받침",
"latitude": 37.443975,
"longitude": 126.963808,
"elevation": 627
},
{
"label": "레이돔 동쪽 받침",
"latitude": 37.444028,
"longitude": 126.963875,
"elevation": 627
},
{
"label": "레이돔 서쪽 받침",
"latitude": 37.444028,
"longitude": 126.96374,
"elevation": 627
},
{
"label": "북동 절벽 하단",
"latitude": 37.444145,
"longitude": 126.963945,
"elevation": 603
},
{
"label": "북쪽 절벽 하단",
"latitude": 37.444185,
"longitude": 126.963805,
"elevation": 608
},
{
"label": "서쪽 첨봉 받침",
"latitude": 37.444105,
"longitude": 126.96358,
"elevation": 617
},
{
"label": "첨봉 북쪽 암릉",
"latitude": 37.44424,
"longitude": 126.96357,
"elevation": 608
},
{
"label": "첨봉 아래 안부",
"latitude": 37.44438,
"longitude": 126.96368,
"elevation": 603
},
{
"label": "암봉 북사면",
"latitude": 37.44425,
"longitude": 126.9639,
"elevation": 610
},
{
"label": "암봉 동사면",
"latitude": 37.44403,
"longitude": 126.96408,
"elevation": 605
},
{
"label": "암봉 서사면",
"latitude": 37.44403,
"longitude": 126.96353,
"elevation": 604
},
{
"label": "암봉 남사면",
"latitude": 37.44382,
"longitude": 126.96382,
"elevation": 610
},
{
"label": "동쪽 골짜기",
"latitude": 37.44435,
"longitude": 126.96465,
"elevation": 582
},
{
"label": "서쪽 사면",
"latitude": 37.44435,
"longitude": 126.96335,
"elevation": 582
}
],
"rockBoundary": [
[
-17,
-59
],
[
-6,
-61
],
[
4,
-61
],
[
11,
-56
],
[
15,
-49
],
[
15,
-40
],
[
15,
-33
],
[
12,
-23
],
[
11,
-16
],
[
10,
-5
],
[
9,
6
],
[
2,
14
],
[
-7,
14
],
[
-12,
12
],
[
-18,
4
],
[
-22,
-4
],
[
-25,
-13
],
[
-27,
-22
],
[
-26,
-31
],
[
-25,
-40
],
[
-22,
-50
]
],
"rockOutcrops": [
{
"latitude": 37.444028,
"longitude": 126.963808,
"radius": 14
},
{
"latitude": 37.444105,
"longitude": 126.96358,
"radius": 11
},
{
"latitude": 37.44424,
"longitude": 126.96357,
"radius": 9
}
]
},
"gisamunHarbour": {
"source": "OSM way/583161999; inland closure and dimensions estimated",
"coordinateSystem": "Local east X, south Z, metres; origin 38.00555 N, 128.73195 E",
"parameters": {
"topElevation": 3,
"bottomElevation": -2,
"shelterWaveScale": 0.25,
"entranceBlendMeters": 18,
"parapetHeight": 0.7,
"parapetWidth": 0.65,
"topColor": "#a2a198",
"wallColor": "#737a78",
"land": [
[
-28.051,
-155.739
],
[
-4.057,
-150.511
],
[
13.586,
-144.984
],
[
25.908,
-151.71
],
[
47.118,
-140.822
],
[
58.307,
-147.348
],
[
36.956,
-163.498
],
[
25.943,
-167.849
],
[
-12.129,
-159.935
],
[
-31.678,
-173.088
],
[
-37.272,
-178.882
],
[
-114.628,
-175.93
],
[
-129.038,
-274.496
],
[
-122.205,
-279.746
],
[
-121.933,
-316.042
],
[
-115.995,
-349.851
],
[
-100.196,
-362.937
],
[
-42.848,
-363.359
],
[
-35.024,
-332.835
],
[
-22.272,
-302.31
],
[
-15.94,
-303.764
],
[
-3.047,
-271.731
],
[
16.019,
-247.7
],
[
95.386,
-163.543
],
[
90.485,
-155.029
],
[
98.916,
-150.723
],
[
111.818,
-152.21
],
[
118.158,
-165.841
],
[
56.804,
-238.465
],
[
21.244,
-279.578
],
[
-4.857,
-330.848
],
[
-17.424,
-401.508
],
[
-24.81,
-423.552
],
[
-180,
-423.552
],
[
-180,
-155.739
]
],
"basin": [
[
58.307,
-147.348
],
[
36.956,
-163.498
],
[
25.943,
-167.849
],
[
-12.129,
-159.935
],
[
-31.678,
-173.088
],
[
-37.272,
-178.882
],
[
-114.628,
-175.93
],
[
-129.038,
-274.496
],
[
-122.205,
-279.746
],
[
-121.933,
-316.042
],
[
-115.995,
-349.851
],
[
-100.196,
-362.937
],
[
-42.848,
-363.359
],
[
-35.024,
-332.835
],
[
-22.272,
-302.31
],
[
-15.94,
-303.764
],
[
-3.047,
-271.731
],
[
16.019,
-247.7
],
[
95.386,
-163.543
]
],
"parapet": [
[
118.158,
-165.841
],
[
56.804,
-238.465
],
[
21.244,
-279.578
],
[
-4.857,
-330.848
],
[
-17.424,
-401.508
],
[
-24.81,
-423.552
]
]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

+14
View File
@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="1200" viewBox="0 0 1600 1200" fill="none">
<defs>
<linearGradient id="sky" x2="0" y2="1200" gradientUnits="userSpaceOnUse"><stop stop-color="#101e36"/><stop offset=".5" stop-color="#71575d"/><stop offset=".76" stop-color="#efad7b"/><stop offset="1" stop-color="#f8cf9d"/></linearGradient>
<radialGradient id="glow"><stop stop-color="#ffdfaa" stop-opacity=".65"/><stop offset="1" stop-color="#ffdfaa" stop-opacity="0"/></radialGradient>
</defs>
<path fill="url(#sky)" d="M0 0h1600v1200H0z"/>
<circle cx="1120" cy="570" r="360" fill="url(#glow)"/>
<circle cx="1120" cy="570" r="81" fill="#ffe4af"/>
<path d="M0 845 160 735 310 790 520 610 730 765 940 690 1130 820 1370 635 1600 785v415H0Z" fill="#6b646e"/>
<path d="m0 880 230-100 180 105 240-160 200 150 205-85 160 100 190-110 195 70v350H0Z" fill="#404b5d"/>
<path d="m0 970 190-80 230 105 260-110 240 100 210-90 220 100 250-80v285H0Z" fill="#253548"/>
<path d="m0 1090 250-100 250 75 320-60 260 90 230-60 290 75v90H0Z" fill="#142638"/>
<g fill="#fff3d9" opacity=".6"><circle cx="215" cy="180" r="2"/><circle cx="750" cy="130" r="1.5"/><circle cx="1300" cy="250" r="2"/><circle cx="440" cy="340" r="1.5"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+12
View File
@@ -0,0 +1,12 @@
<!doctype html><html lang="ko"><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>관악산 구조물 모델 근거</title>
<style>body{font:16px/1.8 sans-serif;max-width:800px;margin:40px auto;padding:20px;color:#24313d}table{border-collapse:collapse}td,th{border:1px solid #bbb;padding:10px}a{color:#285e93}</style>
<h1>구조물 정교화 모델 7종</h1><p>OSM 위치와 공개 현장 사진을 참고한 기존 구조물을 Blender에서 다듬어 적용했습니다. 철탑의 가새·발판·안테나, 레이돔 패널·난간, 데크의 판재·계단을 보강했습니다. 모든 구조물 치수는 추정값이며 측량·준공 도면에 따른 재현이 아닙니다. 구조물로 인한 태양 가림은 이 모델의 형상을 따릅니다.</p>
<table><tr><th>대상</th><th>근거와 한계</th></tr>
<tr><td>정상 마스트</td><td>OSM node/3445797250 위치. 몸체 24m와 안테나 4m는 추정.</td></tr>
<tr><td>남쪽 송신탑 4기</td><td>OSM node/4262612712, node/4736107159의 시설 대표점과 2026년 사진. 개별 위치·높이 34~48m 및 안테나는 추정.</td></tr>
<tr><td>레이돔</td><td>OSM way/337498781의 원형 건물과 사진을 대조한 위치 후보. 지름 8m·받침 건물 높이 7m는 추정.</td></tr>
<tr><td>북쪽 데크·계단</td><td>현장 사진을 참고한 3×7m 데크. 위치·방향·계단 길이·난간 높이 모두 추정.</td></tr>
</table>
<p>기초와 데크 지지대는 현재 30m DSM 표면에 맞췄습니다. 이 표면은 수목·구조물까지 포함하므로 실제 지반과 바닥 높이 검증이 필요합니다. WASD 지형 탐색이 가능합니다. 구조물 충돌과 데크 위 보행은 후속 단계입니다.</p>
<p>지도: © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors, ODbL</a>. 사진 참고: <a href="https://commons.wikimedia.org/wiki/Category:Gwanaksan">Commons</a>, <a href="https://ydk5118.tistory.com/16906972">2026년 산행기</a>, <a href="https://newrunbusy.tistory.com/15">북쪽 데크계단 산행기</a>. 사진 원본은 앱에 포함하지 않았습니다.</p><p><a href="/data-sources.html">자료별 라이선스·가공 데이터 다운로드</a></p></html>
+6
View File
@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 56" fill="none">
<defs><linearGradient id="gold" x1="32" y1="10" x2="32" y2="45" gradientUnits="userSpaceOnUse"><stop stop-color="#ffe8b6"/><stop offset="1" stop-color="#d99955"/></linearGradient></defs>
<path d="M17 37a15 15 0 1 1 30 0" fill="url(#gold)"/>
<g stroke="#eed0a0" stroke-width="2.5" stroke-linecap="round"><path d="M32 4v5M11 13l4 4M53 13l-4 4M3 32h6M55 32h6"/></g>
<path d="m5 43 12-5 10 3 12-6 10 5 10-2M14 50h36" stroke="url(#gold)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 589 B

File diff suppressed because one or more lines are too long
Binary file not shown.
+132
View File
@@ -0,0 +1,132 @@
{
"version": 1,
"dataset": "Copernicus GLO-30 + OSM gisamun coast",
"surfaceType": "Resampled Copernicus DSM; no OSM height correction",
"sourceResolution": "1 arc-second (~30m); interpolated to 10m",
"verticalDatum": "EGM2008 orthometric height (m); sea level approximated as 0m",
"origin": {
"latitude": 38.00555,
"longitude": 128.73195
},
"projection": "+proj=aeqd +lat_0=38.00555 +lon_0=128.73195 +datum=WGS84 +units=m +no_defs",
"width": 301,
"height": 301,
"spacingMeters": 10,
"radiusMeters": 1500,
"observerSurfaceElevation": 0.0,
"minElevation": -0.37622588872909546,
"maxElevation": 145.99964904785156,
"missingSamples": 0,
"geographicCorners": [
[
128.7148738783932,
37.99203481488981
],
[
128.7490261216068,
37.99203481488981
],
[
128.7490323912247,
38.0190626735617
],
[
128.71486760877534,
38.0190626735617
]
],
"sources": [
{
"file": "data/raw/hajodae/Copernicus_DSM_COG_10_N37_00_E128_00_DEM.tif",
"url": "https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N37_00_E128_00_DEM/Copernicus_DSM_COG_10_N37_00_E128_00_DEM.tif",
"bytes": 45141829,
"sha256": "69036070795162395dcea060375abba2d448dc2a5b74949844784466191b707c",
"crs": "EPSG:4326",
"bounds": [
127.99986111111112,
37.00013888888889,
128.9998611111111,
38.00013888888889
],
"shape": [
3600,
3600
],
"resolutionDegrees": [
0.0002777777777777778,
0.0002777777777777778
],
"nodata": null,
"min": -3.7442760467529297,
"max": 1574.278564453125,
"maskedSamples": 0,
"nonfiniteSamples": 0
},
{
"file": "data/raw/hajodae/Copernicus_DSM_COG_10_N38_00_E128_00_DEM.tif",
"url": "https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N38_00_E128_00_DEM/Copernicus_DSM_COG_10_N38_00_E128_00_DEM.tif",
"bytes": 18904152,
"sha256": "ef70790d1e4c889f6a0965b7f39fb8627e5682ddad7cc893cf61084af8c7c012",
"crs": "EPSG:4326",
"bounds": [
127.99986111111112,
38.00013888888889,
128.9998611111111,
39.00013888888889
],
"shape": [
3600,
3600
],
"resolutionDegrees": [
0.0002777777777777778,
0.0002777777777777778
],
"nodata": null,
"min": -0.680739164352417,
"max": 1703.6204833984375,
"maskedSamples": 0,
"nonfiniteSamples": 0
},
{
"file": "data/raw/gisamun/coast.osm",
"url": "https://www.openstreetmap.org/api/0.6/map?bbox=128.720,37.975,128.770,38.025",
"bytes": 2680764,
"sha256": "0b59c2383c6ebfa5e6bc95dfcd21d0a7bce2406fecbb7e2a8d245d35a45e1bb4"
}
],
"attribution": "produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved; © OpenStreetMap contributors (ODbL-1.0)",
"corrections": {
"osmHeightCorrection": false,
"note": "Heights use Copernicus reprojection and bilinear resampling only. OSM masks affect rendering and movement, not stored elevations. Offshore values are not bathymetry. No tide model."
},
"files": {
"heights.f32": {
"source": "Copernicus GLO-30",
"processing": "AEQD projection and bilinear resampling only; no OSM height adjustment",
"licenseUrl": "https://dataspace.copernicus.eu/sites/default/files/media/files/2025-06/copernicus_contributing_mission_data_access_v2_cop_dem_licenses.pdf",
"licenseSection": "GLO-30-F, Articles 4 and 6",
"notice": "source.html"
},
"coast.json": {
"license": "ODbL-1.0",
"licenseUrl": "https://opendatacommons.org/licenses/odbl/1-0/",
"attribution": "© OpenStreetMap contributors",
"sourceUrl": "https://www.openstreetmap.org/copyright",
"processing": "Projected coastline and beach polygons; estimated beach strip for Gisamun"
},
"surface.png": {
"license": "ODbL-1.0",
"licenseUrl": "https://opendatacommons.org/licenses/odbl/1-0/",
"attribution": "© OpenStreetMap contributors",
"sourceUrl": "https://www.openstreetmap.org/copyright",
"processing": "R: land mask; G: sand mask; B: signed coast distance; contains no Copernicus elevations"
}
},
"sandApproximation": {
"sandLatitudeMin": 38.0043299,
"sandLatitudeMax": 38.0064958,
"sandWidthMeters": 35,
"note": "OSM beach polygon absent. Visual strip west of OSM shoreline; not surveyed beach limits."
}
}
+33
View File
@@ -0,0 +1,33 @@
<!doctype html>
<html lang="ko"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>기사문 해변 — 데이터 출처와 표현 범위</title>
<style>body{max-width:850px;margin:48px auto;padding:0 24px;font:16px/1.8 system-ui,sans-serif;color:#e3eaf0;background:#101b25}a{color:#9ed4ef}h1,h2{line-height:1.3}li{margin:10px 0}</style>
<h1>기사문 해변의 데이터와 표현 범위</h1>
<p>2026-10-29 가공. 관측점은 기사문항 남쪽 해변의 위도 38.00555°, 경도 128.73195° 임시값입니다. 현장 측량 좌표가 아닙니다.</p>
<h2>확보 자료와 가공</h2>
<ul>
<li>Copernicus GLO-30 N37/E128, N38/E128 두 타일을 병합하고 관측점 중심 3×3km를 추출했습니다. 30m급 원본을 10m 간격으로 보간한 높이 격자는 362,404 bytes입니다. 원본 정확도가 높아지는 것은 아닙니다.</li>
<li>OSM 해안선 두 구간을 공유 끝점으로 연결하고 주변 섬을 보존했습니다. 표면 마스크는 2m 간격이며 실제 측량 정확도를 의미하지 않습니다.</li>
<li><strong>기사문 모래사장 영역은 OSM에 누락되어 있습니다.</strong> 위도 38.0043299–38.0064958의 해안선 구간을 서쪽으로 35m 넓혀 모래색 영역으로 근사했습니다. 실제 모래 경계나 폭으로 해석하면 안 됩니다.</li>
<li>높이·해안선·표면 마스크·메타데이터 합계 약 416KB입니다. 약 64MB의 원본은 브라우저로 보내지 않습니다.</li>
</ul>
<h2>일출 관측과 한계</h2>
<p>2026-10-30 기본 관측점을 북쪽 방파제 진입부의 임시 위치(데이터 원점에서 서쪽 30m, 북쪽 350m)로 옮기고 조도를 바라보도록 설정했습니다. 기존 해변 좌표는 지형 데이터 원점으로 유지합니다. 카메라는 추정 부두 상부 해발 3m에 눈높이를 더해 배치합니다. 날짜별 태양 위치는 그대로 계산하므로 항상 조도와 겹치는 것은 아닙니다.</p>
<p>2026-10-29 06:52, 06:55, 07:00 KST의 태양 중심 방향이 이 지형 모델에 가리지 않는 것을 검사했습니다. 06:55에는 브라우저에서 원반을 확인했습니다. 이는 모델 검증이며 현장 일출의 실측 검증이나 모든 날짜의 무차폐 보장이 아닙니다.</p>
<ul>
<li>높이 격자는 Copernicus 자료를 좌표 변환·보간한 값입니다. OSM 해안선을 이용한 높이 낮추기, 최소 육지 높이 적용, 바다 칸의 0m 덮어쓰기를 하지 않습니다. OSM 경계와 DSM 높이가 맞지 않아 해안에 단차가 나타날 수 있습니다.</li>
<li>2026-10-30 기사문항에 OSM way/583161999의 해안 윤곽을 따르는 콘크리트 방파제·안벽·포장면을 추가했습니다. 해당 구간은 DSM 지형 대신 별도 메시로 표현합니다. 상부 해발 3m, 수면 아래 2m까지의 벽, 외측 난간벽 0.7m와 내륙 포장 경계는 시각적 추정값이며 실측 설계가 아닙니다. 건물·등대·선박·소파블록은 포함하지 않습니다.</li>
<li>방파제 안쪽 물결은 외해의 25% 강도로 근사하고 항구 입구에서 18m에 걸쳐 연결합니다. 파랑 해석이나 실제 항만 정온도 자료가 아닙니다. DSM은 수목·건물을 포함하며 작은 섬·절벽의 세부 높이까지 재현하지 못합니다.</li>
<li>바다 칸도 Copernicus 보간값을 유지하며 수심이 아닙니다. OSM 마스크는 화면 표시·재질·이동 경계에 사용하며 높이 격자를 수정하지 않습니다. 물결·거품·반사는 시각 효과이고 실제 조석·파고·날씨는 반영하지 않습니다.</li>
<li>3×3km 바깥은 육지를 표현하지 않고 바다 표면을 연장합니다. 먼 육지의 조망·차폐는 추가 자료가 필요합니다.</li>
</ul>
<h2>출처</h2>
<p><a href="metadata.json">가공 설정·원본 URL·SHA256</a> · <a href="coast.json">가공 해안선</a></p>
<p>© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, ODbL-1.0. <a href="https://www.openstreetmap.org/api/0.6/map?bbox=128.720,37.975,128.770,38.025">OSM 원본 요청</a></p>
<p><a href="https://copernicus-dem-30m.s3.amazonaws.com/readme.html">Copernicus 공개 배포·이용조건</a></p>
<p>produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved</p>
<p>The organisations in charge of the Copernicus programme by law or by delegation do not incur any liability for any use of the Copernicus WorldDEM-30.</p>
<p><a href="https://dataspace.copernicus.eu/sites/default/files/media/files/2025-06/copernicus_contributing_mission_data_access_v2_cop_dem_licenses.pdf">Copernicus 원문 라이선스 (GLO-30-F, 22~24쪽)</a>. 가공 지형을 재배포할 때에도 지정 출처·면책 고지와 제6조의 의무를 유지해야 합니다.</p>
<p><a href="https://tour.yangyang.go.kr/pub/yysea?mode=v&amp;seq=151">양양군 38해변(기사문해변) 안내</a></p>
<p><a href="/?site=gisamun">기사문 시뮬레이터로 돌아가기</a></p>
<p><a href="/data-sources.html">자료별 라이선스·가공 데이터 다운로드</a></p></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.
+88
View File
@@ -0,0 +1,88 @@
{
"version": 1,
"dataset": "Copernicus DEM GLO-30 Public (2021 release)",
"surfaceType": "DSM",
"sourceResolution": "1 arc-second (~30m)",
"verticalDatum": "EGM2008 orthometric height (m)",
"origin": {
"latitude": 37.445,
"longitude": 126.964
},
"projection": "+proj=aeqd +lat_0=37.445 +lon_0=126.964 +datum=WGS84 +units=m +no_defs",
"projectionWkt": "PROJCRS[\"unknown\",BASEGEOGCRS[\"unknown\",DATUM[\"World Geodetic System 1984\",ELLIPSOID[\"WGS 84\",6378137,298.257223563,LENGTHUNIT[\"metre\",1]],ID[\"EPSG\",6326]],PRIMEM[\"Greenwich\",0,ANGLEUNIT[\"degree\",0.0174532925199433],ID[\"EPSG\",8901]]],CONVERSION[\"unknown\",METHOD[\"Azimuthal Equidistant\",ID[\"EPSG\",1125]],PARAMETER[\"Latitude of natural origin\",37.445,ANGLEUNIT[\"degree\",0.0174532925199433],ID[\"EPSG\",8801]],PARAMETER[\"Longitude of natural origin\",126.964,ANGLEUNIT[\"degree\",0.0174532925199433],ID[\"EPSG\",8802]],PARAMETER[\"False easting\",0,LENGTHUNIT[\"metre\",1],ID[\"EPSG\",8806]],PARAMETER[\"False northing\",0,LENGTHUNIT[\"metre\",1],ID[\"EPSG\",8807]]],CS[Cartesian,2],AXIS[\"(E)\",east,ORDER[1],LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],AXIS[\"(N)\",north,ORDER[2],LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]]]",
"width": 801,
"height": 801,
"spacingMeters": 30,
"radiusMeters": 12000,
"layout": "row-major north-to-south, west-to-east, float32 little-endian",
"heightFile": "gwanaksan.f32",
"geographicCorners": [
[
126.82858665147765,
37.336799644387234
],
[
127.09941334852236,
37.336799644387234
],
[
127.09980363427715,
37.55304278295426
],
[
126.82819636572286,
37.55304278295426
]
],
"observerSurfaceElevation": 606.9063720703125,
"minElevation": 1.314314842224121,
"maxElevation": 618.474609375,
"missingSamples": 0,
"sources": [
{
"file": "Copernicus_DSM_COG_10_N37_00_E126_00_DEM.tif",
"url": "https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N37_00_E126_00_DEM/Copernicus_DSM_COG_10_N37_00_E126_00_DEM.tif",
"bytes": 29862574,
"sha256": "f530dd28308ecd6c5ceb0405dc1ffb7113bcafdec30d023de50f16dc433a274f",
"crs": "EPSG:4326",
"bounds": [
125.99986111111112,
37.00013888888889,
126.99986111111112,
38.00013888888889
],
"shape": [
3600,
3600
],
"pixelSizeDegrees": [
0.0002777777777777778,
0.0002777777777777778
],
"nodata": null
},
{
"file": "Copernicus_DSM_COG_10_N37_00_E127_00_DEM.tif",
"url": "https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N37_00_E127_00_DEM/Copernicus_DSM_COG_10_N37_00_E127_00_DEM.tif",
"bytes": 49403795,
"sha256": "4f8fef79da8c18ed9a9a0fb97b3d2695c4681181e013e039d87044e5479f7df6",
"crs": "EPSG:4326",
"bounds": [
126.99986111111112,
37.00013888888889,
127.99986111111112,
38.00013888888889
],
"shape": [
3600,
3600
],
"pixelSizeDegrees": [
0.0002777777777777778,
0.0002777777777777778
],
"nodata": null
}
],
"attribution": "produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved"
}
File diff suppressed because one or more lines are too long
Binary file not shown.
+100
View File
@@ -0,0 +1,100 @@
{
"version": 1,
"dataset": "Copernicus GLO-30 + OSM hajodae coast",
"surfaceType": "Resampled Copernicus DSM; no OSM height correction",
"sourceResolution": "1 arc-second (~30m); interpolated to 10m",
"verticalDatum": "EGM2008 orthometric height (m); sea level approximated as 0m",
"origin": {
"latitude": 38.020813,
"longitude": 128.7352564
},
"projection": "+proj=aeqd +lat_0=38.020813 +lon_0=128.7352564 +datum=WGS84 +units=m +no_defs",
"width": 301,
"height": 301,
"spacingMeters": 10,
"radiusMeters": 1500,
"observerSurfaceElevation": 31.851652145385742,
"minElevation": 0.0,
"maxElevation": 123.29191589355469,
"missingSamples": 0,
"geographicCorners": [
[
128.71817673888106,
38.00729784938007
],
[
128.7523360611189,
38.00729784938007
],
[
128.75234233547536,
38.03432563771381
],
[
128.7181704645246,
38.03432563771381
]
],
"sources": [
{
"file": "data/raw/hajodae/coast.osm",
"url": "https://www.openstreetmap.org/api/0.6/map?bbox=128.700,38.005,128.750,38.045",
"bytes": 2249397,
"sha256": "b6bdbd87e466d5e726f755cd9f9bfc91a01c1a2f2f3fd9db06bcc609d7b22079"
},
{
"file": "data/raw/hajodae/Copernicus_DSM_COG_10_N38_00_E128_00_DEM.tif",
"url": "https://copernicus-dem-30m.s3.amazonaws.com/Copernicus_DSM_COG_10_N38_00_E128_00_DEM/Copernicus_DSM_COG_10_N38_00_E128_00_DEM.tif",
"bytes": 18904152,
"sha256": "ef70790d1e4c889f6a0965b7f39fb8627e5682ddad7cc893cf61084af8c7c012",
"crs": "EPSG:4326",
"bounds": [
127.99986111111112,
38.00013888888889,
128.9998611111111,
39.00013888888889
],
"shape": [
3600,
3600
],
"resolutionDegrees": [
0.0002777777777777778,
0.0002777777777777778
],
"nodata": null,
"min": -0.680739164352417,
"max": 1703.6204833984375,
"maskedSamples": 0,
"nonfiniteSamples": 0
}
],
"attribution": "produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved; © OpenStreetMap contributors (ODbL-1.0)",
"corrections": {
"osmHeightCorrection": false,
"note": "Heights use Copernicus reprojection and bilinear resampling only. OSM masks affect rendering and movement, not stored elevations. Offshore values are not bathymetry. No tide model."
},
"files": {
"heights.f32": {
"source": "Copernicus GLO-30",
"processing": "AEQD projection and bilinear resampling only; no OSM height adjustment",
"licenseUrl": "https://dataspace.copernicus.eu/sites/default/files/media/files/2025-06/copernicus_contributing_mission_data_access_v2_cop_dem_licenses.pdf",
"licenseSection": "GLO-30-F, Articles 4 and 6",
"notice": "source.html"
},
"coast.json": {
"license": "ODbL-1.0",
"licenseUrl": "https://opendatacommons.org/licenses/odbl/1-0/",
"attribution": "© OpenStreetMap contributors",
"sourceUrl": "https://www.openstreetmap.org/copyright",
"processing": "Projected coastline and beach polygons; estimated beach strip for Gisamun"
},
"surface.png": {
"license": "ODbL-1.0",
"licenseUrl": "https://opendatacommons.org/licenses/odbl/1-0/",
"attribution": "© OpenStreetMap contributors",
"sourceUrl": "https://www.openstreetmap.org/copyright",
"processing": "R: land mask; G: sand mask; B: signed coast distance; contains no Copernicus elevations"
}
}
}
+32
View File
@@ -0,0 +1,32 @@
<!doctype html>
<html lang="ko"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>하조대 해안 — 데이터 출처와 표현 범위</title>
<style>body{max-width:850px;margin:48px auto;padding:0 24px;font:16px/1.8 system-ui,sans-serif;color:#e3eaf0;background:#101b25}a{color:#9ed4ef}code{color:#edcda7}h1,h2{line-height:1.3}li{margin:10px 0}</style>
<h1>하조대 해안의 데이터와 표현 범위</h1>
<p>2026-10-30 정자 기준으로 재가공. 관측점은 OSM 하조대 정자(node/12019797394)의 위도 38.020813°, 경도 128.7352564°입니다. 시작·복귀 시 소나무 참고 위치(38°01.252′ N, 128°44.134′ E)를 향하는 약 78° 방위로 수평 시선을 맞춥니다. 좌표와 정자 바닥 높이는 현장 측량으로 검증하지 않았습니다.</p>
<h2>웹용 자료</h2>
<ul>
<li>관측점 주변 3×3km. Copernicus 30m급 DSM을 10m 간격 301×301로 보간했습니다. 높이 파일 362,404 bytes. 보간은 실제 지형 정확도를 높이지 않습니다.</li>
<li>OSM 해안선과 해변 영역을 AEQD 로컬 좌표로 변환했습니다. 원본 해안선을 보존한 육지 판정과 2m 간격 PNG 표면 마스크를 사용합니다. 마스크 간격은 측량 정확도가 아닙니다.</li>
<li>표면 마스크 56,357 bytes, 해안선 JSON 20,003 bytes. 원본 GeoTIFF 약 64MB를 브라우저로 보내지 않습니다.</li>
</ul>
<h2>시각적 보정과 한계</h2>
<ul>
<li>DSM은 수목·건물을 포함하는 표면고도입니다. 높이 격자는 Copernicus 자료를 좌표 변환·보간한 값이며 OSM 경계로 수정하지 않습니다.</li>
<li>해안선 주변 높이 낮추기, 최소 육지 높이 적용, 바다 칸의 0m 덮어쓰기를 하지 않습니다. 정자 좌표의 가공 DSM은 약 31.85m이며 실제 정자 바닥 표고가 아닙니다. 카메라는 렌더링 지면에 눈높이를 더해 배치합니다.</li>
<li>높이 격자는 바다 칸도 Copernicus 보간값을 유지하며 수심으로 해석하지 않습니다. OSM 마스크는 화면에서 바다 영역의 지형을 숨기는 데 사용합니다. 육지·바다 재질은 동일한 마스크를 사용합니다. OSM 경계와 DSM 높이가 맞지 않아 해안에 단차가 나타날 수 있습니다. 해안선의 세부 높이는 10m 격자의 보간값으로 실제 절벽이나 모래턱을 정밀하게 표현하지 못합니다.</li>
<li>바다는 EGM2008 기준 0m로 근사하고 지구 곡률을 적용합니다. 물결·거품·반사는 절차적 시각 효과입니다. 실제 조석·파고·해저 지형·날씨는 반영하지 않습니다.</li>
<li>3×3km 바깥의 육지는 표현하지 않으며 바다 표면만 연장합니다. 먼 해안의 정확한 조망이나 실측 일출 검증용 장면은 아닙니다.</li>
<li>OSM의 작은 섬도 육지 경계로 보존하지만 30m급 높이 원본에 없는 암반 형상·높이는 재현하지 못합니다. 등대·정자·소나무 모델은 포함하지 않습니다. 소나무 참고 좌표는 초기 시선의 방위를 정하는 용도이며 수목의 높이나 모양을 나타내지 않습니다.</li>
<li>바다 진입을 막으며 육지에서만 이동합니다. 일출·일몰 표시는 근사 지면 높이를 사용한 천문 계산으로, 실제 지형 위 첫 태양 관측 시각과 다를 수 있습니다.</li>
</ul>
<h2>출처</h2>
<p>관측점: <a href="https://www.openstreetmap.org/node/12019797394">OSM 하조대 정자</a>. 소나무 방향 참고: <a href="https://files-scs.pstatic.net/2025/10/19/jzjd280prT/%EC%9D%B4%EC%95%BC%EA%B8%B0%EA%B0%80%20%EC%9E%88%EB%8A%94%20%EB%B3%B4%ED%98%B8%EC%88%98_1_2013.pdf">이야기가 있는 보호수(2013) 자료집</a>. 소나무 위치는 참고 좌표이며 현장 재측량값이 아닙니다.</p>
<p><a href="https://copernicus-dem-30m.s3.amazonaws.com/readme.html">Copernicus GLO-30 공개 배포</a> · <a href="https://dataspace.copernicus.eu/explore-data/data-collections/copernicus-contributing-missions/collections-description/COP-DEM">공식 데이터·이용조건</a></p>
<p>produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved</p>
<p>The organisations in charge of the Copernicus programme by law or by delegation do not incur any liability for any use of the Copernicus WorldDEM-30.</p>
<p><a href="https://dataspace.copernicus.eu/sites/default/files/media/files/2025-06/copernicus_contributing_mission_data_access_v2_cop_dem_licenses.pdf">Copernicus 원문 라이선스 (GLO-30-F, 22~24쪽)</a>. 가공 지형을 재배포할 때에도 지정 출처·면책 고지와 제6조의 의무를 유지해야 합니다.</p>
<p>© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>, ODbL-1.0. <a href="coast.json">가공 해안선</a> · <a href="metadata.json">원본 URL·SHA256·가공 설정</a> · <a href="https://www.openstreetmap.org/api/0.6/map?bbox=128.700,38.005,128.750,38.045">OSM 원본 요청</a></p>
<p><a href="https://tour.yangyang.go.kr/pub/yy10view.do?mode=v&amp;seq=120">양양군 하조대해변 안내</a> · <a href="https://tour.yangyang.go.kr/pub/yy10view.do?mode=v&amp;seq=172">하조대 안내</a></p>
<p><a href="/?site=hajodae">하조대 시뮬레이터로 돌아가기</a></p>
<p><a href="/data-sources.html">자료별 라이선스·가공 데이터 다운로드</a></p></html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

+83
View File
@@ -0,0 +1,83 @@
[
{
"file": "path-color.jpg",
"asset": "dirt",
"source": "https://polyhaven.com/a/dirt",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/dirt/dirt_diff_1k.jpg",
"license": "CC0-1.0",
"bytes": 730425,
"md5": "cb37e24797597b1dd1ae3819fa80f076"
},
{
"file": "path-normal.jpg",
"asset": "dirt",
"source": "https://polyhaven.com/a/dirt",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/dirt/dirt_nor_gl_1k.jpg",
"license": "CC0-1.0",
"bytes": 1202783,
"md5": "362610edf09fd31735958eecec823a84"
},
{
"file": "path-roughness.jpg",
"asset": "dirt",
"source": "https://polyhaven.com/a/dirt",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/dirt/dirt_rough_1k.jpg",
"license": "CC0-1.0",
"bytes": 253549,
"md5": "d936d6760ce0f899b131d30626d52ce9"
},
{
"file": "rock-color.jpg",
"asset": "rock_boulder_dry",
"source": "https://polyhaven.com/a/rock_boulder_dry",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/rock_boulder_dry/rock_boulder_dry_diff_1k.jpg",
"license": "CC0-1.0",
"bytes": 859211,
"md5": "da794cd9be3db91e3160cf081109f322"
},
{
"file": "rock-normal.jpg",
"asset": "rock_boulder_dry",
"source": "https://polyhaven.com/a/rock_boulder_dry",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/rock_boulder_dry/rock_boulder_dry_nor_gl_1k.jpg",
"license": "CC0-1.0",
"bytes": 802497,
"md5": "6f1c575ceed560ae253f65518cf748e2"
},
{
"file": "rock-roughness.jpg",
"asset": "rock_boulder_dry",
"source": "https://polyhaven.com/a/rock_boulder_dry",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/rock_boulder_dry/rock_boulder_dry_rough_1k.jpg",
"license": "CC0-1.0",
"bytes": 668127,
"md5": "0c8b15df3e31c15256da5f8e1b0d0759"
},
{
"file": "forest-color.jpg",
"asset": "forest_leaves_02",
"source": "https://polyhaven.com/a/forest_leaves_02",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/forest_leaves_02/forest_leaves_02_diffuse_1k.jpg",
"license": "CC0-1.0",
"bytes": 437891,
"md5": "13e9bfac07cb72ca143e153cc2f589a8"
},
{
"file": "forest-normal.jpg",
"asset": "forest_leaves_02",
"source": "https://polyhaven.com/a/forest_leaves_02",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/forest_leaves_02/forest_leaves_02_nor_gl_1k.jpg",
"license": "CC0-1.0",
"bytes": 577163,
"md5": "72002432222467c74cd9980cbddb25a4"
},
{
"file": "forest-roughness.jpg",
"asset": "forest_leaves_02",
"source": "https://polyhaven.com/a/forest_leaves_02",
"url": "https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/forest_leaves_02/forest_leaves_02_rough_1k.jpg",
"license": "CC0-1.0",
"bytes": 192523,
"md5": "578e637510d8fdd7acf97afc6f329e9d"
}
]
+17
View File
@@ -0,0 +1,17 @@
<!doctype html>
<html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>관악산 지형 데이터 출처</title>
<style>body{max-width:760px;margin:48px auto;padding:0 24px;background:#101823;color:#e4eaf0;font:16px/1.8 system-ui,sans-serif}a{color:#eec99d}h1{font-size:24px}small{color:#a8bac8}code{overflow-wrap:anywhere}</style></head>
<body><h1>관악산 지형 데이터</h1>
<p>Copernicus DEM GLO-30 Public, AWS 배포 2021 release. 원본 N37 E126 및 N37 E127 타일에서 임시 관측점 37.4450° N, 126.9640° E 중심 24×24km를 추출했습니다.</p>
<ul><li>원본: WGS84 경위도 1 arc-second 격자(명목 30m급), 높이 EGM2008 기준(m).</li>
<li>화면: 관측점 중심 AEQD 투영, 30m 간격으로 bilinear 재표본화한 801×801 격자. 색상은 높이·경사 기반 표현이며 항공사진이 아닙니다.</li>
<li>DSM은 수목과 구조물 높이를 포함할 수 있습니다. 별도 VWorld 건물과 추정 정상 구조물은 각 출처 안내를 따릅니다.</li>
<li>카메라: 이 격자의 관측점 표면 606.906m + 눈높이(기본 1.7m, 1.60~1.95m 조절). 현장 측량값이 아니며 기존 임시 629m와 다릅니다.</li>
<li>지구 곡률은 평균 반지름 6,371,008.8m로 근사하고, 지상 대기굴절은 반영하지 않습니다.</li>
<li>영역 밖은 단순 해수면 기준 지평선으로 표시합니다. 그 너머 실제 능선과 수목·건물의 세부 차폐를 검증한 결과가 아닙니다.</li>
<li>일출·일몰 숫자는 고도 보정 천문 시각입니다. 지형 위로 태양이 처음 보이는 시각을 의미하지 않습니다.</li></ul>
<p>produced using Copernicus WorldDEM-30 © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018 provided under COPERNICUS by the European Union and ESA; all rights reserved</p>
<p>The organisations in charge of the Copernicus programme by law or by delegation do not incur any liability for any use of the Copernicus WorldDEM-30.</p>
<p>가공 지형을 재배포할 때에도 지정 출처·면책 고지와 원문 라이선스 제6조의 의무를 유지해야 합니다.</p>
<p><a href="https://registry.opendata.aws/copernicus-dem/">공식 배포 안내</a> · <a href="https://copernicus-dem-30m.s3.amazonaws.com/readme.html">COG 파일 명세</a> · <a href="https://dataspace.copernicus.eu/sites/default/files/media/files/2025-06/copernicus_contributing_mission_data_access_v2_cop_dem_licenses.pdf">원문 라이선스 (GLO-30-F, 22~24쪽)</a> · <a href="gwanaksan.json">메타데이터·원본 URL·SHA256</a></p>
<small>다운로드·전처리: 2026-10-29. 원본 파일은 프로젝트 data/raw/copernicus에 보관하며 웹에는 가공 격자만 제공합니다.</small></body><p><a href="/data-sources.html">자료별 라이선스·가공 데이터 다운로드</a></p></html>
Binary file not shown.
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
{
"version": 1,
"sourceHash": "8f7306b64c88b4d706c8bd8ecce0385fe1f5f64502123735b13d7affc2cb8ba7",
"bufferHash": "59f836d4ff44c1f047c4165c99672fc9e7a04f9981f15561f4277754577d6e5a",
"byteLength": 15601904,
"gzipBytes": 6138340,
"originalVertices": 1180560,
"vertices": 209224,
"triangles": 393520,
"originalAttributeBytes": 61389120,
"generateMs": 3773.8809,
"decodeMs": 13.8812999999991
}
+33
View File
@@ -0,0 +1,33 @@
<!doctype html><html lang="ko"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>관악산 정상 주변 추정 지형</title>
<style>body{max-width:850px;margin:40px auto;padding:0 24px;font:16px/1.8 system-ui;color:#27332e}a{color:#25654e}table{border-collapse:collapse}td,th{padding:8px;border:1px solid #ccc}</style>
<h1>사진 기반 정상 주변 지형 보정</h1>
<p>2026-10-30. 이것은 정밀 DEM이나 측량 결과가 아닌 시각적 추정 모델입니다. 원본 Copernicus 30m DSM과 원래 좌표 원점은 변경하지 않았습니다.</p>
<h2>촬영 위치 추정</h2>
<p>시작점은 북위 37.44472°, 동경 126.96422° 부근으로 추정했습니다. 레이돔 북동쪽 약 84m의 정상 쪽 암반을 후보로 삼았습니다. 사용자 제공 JINK의 2018년 6월 파노라마에는 레이돔 암봉이 오른쪽 위, 계곡과 시가지가 왼쪽으로 보입니다. 기존 참고사진 photo-09·photo-10에서도 안부를 건너 암봉 위 시설을 보는 관계가 확인됩니다. 이 배치와 남향 시야를 맞춘 후보이며, 실제 촬영 GPS를 복원하거나 오차를 측정한 결과가 아닙니다. 수십 미터 이상의 위치 차이가 남을 수 있습니다.</p>
<p>블로그의 37.4430°, 126.9641°와 629m는 해당 파노라마의 촬영점·표고임이 확인되지 않아 그대로 사용하지 않았습니다. 사용자 등고선 스크린샷은 넓은 능선과 골짜기 배치의 정성적 참고이며, 등고선을 좌표화하거나 고해상도 DEM으로 추출한 것은 아닙니다.</p>
<h2>높이와 범위</h2>
<p>암릉은 Blender MCP에서 실제 앱 지형과 시점을 참조해 별도로 조형한 GLB 모델을 사용합니다. 기운 상부 바위, 오목한 세로 절리면, 돌출부와 하부 암반을 제작하고 풍화 홈을 메시로 표현했습니다. 기존의 반복 구형 암괴 생성은 제거했습니다. 사진의 형상을 참고한 근사 모델이며 사진측량·실측 복원이 아닙니다. 정상 석판 보행 경계는 앞서 확장한 경계를 유지합니다.</p>
<p>추가 사용자 사진을 참고해 레이돔 하부를 좁은 받침과 급한 암벽으로 보정하고, 남향 시야 오른쪽의 바위 첨봉과 시설 연결 계단을 추가했습니다. 바위 형상·계단 치수는 시각적 추정이며 시설 계단은 보행 경로가 아닙니다. 남쪽 송신탑 군집과 북쪽 정상 통신탑은 기존 지도상의 별도 시설 위치를 유지합니다. 첫 사진의 레이돔 옆 철탑은 시기·정체가 확인되지 않아 북쪽 통신탑을 이동시키는 근거로 사용하지 않았습니다. 정상 표지석 사진은 넓은 암반 경사면의 참고이며 인파·적설·매점 천막은 재현하지 않았습니다.</p>
<p>촬영점 지면 620m, 레이돔 아래 암봉 628m, 중간 안부 606m 등을 작업용 높이로 설정했습니다. 이 값들은 사진에서 측정한 수치가 아니라 상대 높이를 구성하기 위한 추정 제어점입니다. 모델 건물·돔의 치수와 위치도 기존 추정값을 사용합니다.</p>
<p>제어점의 원본 대비 높이 차이를 거리 가중 보간해 지형에 더합니다. 시작점 반경 100m 안에서는 보정량을 그대로 적용하고 100~200m 구간에서 부드럽게 줄여 200m 바깥은 원본 메시와 같습니다. 메시의 근거리 세분화는 원본 해상도 향상을 의미하지 않습니다. 보행 지면·구조물 기초·미니맵은 같은 보정 메시를 사용합니다.</p>
<p>‘원본 지형 비교’는 같은 추정 시작점과 시선으로 원본 DSM을 보여줍니다. 전환 시 이동 위치와 선택 시각은 초기화됩니다. 태양 방위 계산과 별개로 지형 차폐는 추정 지형의 영향을 받으며, 표시 일출 시각은 실제 능선 통과 시각이 아닙니다.</p>
<h2>시작점 반경 200m 보행 구역</h2>
<p>정상 석판 보행 범위를 추가 사진과 저장된 2013년 거리뷰로 재검토했습니다. 이전 경계는 시작점 주변에만 면적을 부여해 북쪽 정상 암반에서도 좁은 경로 밖으로 이동할 수 없었습니다. OSM 정상 후보점(node/442878166, 37.4451398°, 126.9642379°)까지 이어지는 넓은 암반 경사면을 하나의 보행 영역으로 연결했습니다. 지도상의 정상점이 표지석의 실측 위치라는 뜻은 아닙니다. 외곽선·약 40m 폭과 75m 길이의 범위는 사진 해석이며 공식 출입 경계가 아닙니다. 서쪽 통신시설과 동쪽 절벽 밖은 제외하고 미니맵·바위 재질·이동 판정에 같은 경계를 적용합니다. 공개 등산 안내도는 정상 접근 경로를 확인하는 용도이며 석판 외곽 치수를 제공하지 않습니다(<a href="https://seoulhiking.or.kr/data/mountain_pdf/note_20250910183805443_01.pdf">서울 등산관광 관악산 코스 지도</a>).</p>
<p>네이버 거리뷰의 정상 암반·난간 옆 하산로·안내판 갈림길을 참고했습니다. 확인한 파노라마는 4GIINusjBpMhkE6lqWL10w와 dusWkUEvILaraw4XtD9-KA이며 화면 촬영일은 2013년 10월입니다. 200m 전 구간의 연속 촬영이나 현재 개방 여부를 확인한 것은 아닙니다.</p>
<p>길 중심선은 OpenStreetMap way/337498789, way/37751526, way/337498787, way/337498788을 사용했습니다. 길 폭(2.2~3.2m), 시작점 암반 경계와 수목 배치는 시각적 추정입니다. 계단 구간도 현재는 기존 보정 지면을 따르는 보행면으로 단순화했습니다. 레이돔 시설 진입 가지길은 제외했습니다.</p>
<p>흙·자갈 재질은 길, 밝은 바위 재질은 암반, 이끼·낙엽 바닥 재질은 길 밖 수목 구역을 표시합니다. 입체 나무는 제거한 상태입니다. 모든 암반이 이동 가능한 것은 아니며 정상 시작점 암반과 연결된 길만 이동할 수 있습니다. 반경 200m 경계와 시설 구역에서 멈춥니다. 미니맵의 금색 선은 경로, 점선 원은 200m 경계, 흰 점은 시작점입니다. 걸은 거리는 수평 이동 누계이며 복귀 버튼으로 초기화됩니다.</p>
<p>이 자료는 시뮬레이터용 근사 모델이며 실측 등산로 또는 현장 길안내 자료가 아닙니다. 거리뷰 이미지는 앱 텍스처로 재배포하지 않습니다. 경로 출처: <a href="https://www.openstreetmap.org/copyright">© OpenStreetMap contributors, ODbL</a>. <a href="https://map.naver.com/p/search/연주대/place/19546172?p=4GIINusjBpMhkE6lqWL10w,178.8,-23.3,80,Float">참고한 네이버 거리뷰</a>.</p>
<h2>지면 재질 (1단계)</h2>
<p>반경 200m에 색상·OpenGL 노멀·거칠기 맵을 적용했습니다. Poly Haven의 <a href="https://polyhaven.com/a/dirt">Dirt</a>, <a href="https://polyhaven.com/a/rock_boulder_dry">Rock Boulder Dry</a>, <a href="https://polyhaven.com/a/forest_leaves_02">Forest Leaves 02</a>를 사용합니다. 모두 CC0이며 관악산 현장을 촬영한 재질은 아닙니다. 암반은 화강암 분위기의 대체 재질이며 실제 암종을 확인한 스캔은 아닙니다. 파일 출처와 해시는 <a href="/terrain/materials/sources.json">재질 목록</a>에 기록했습니다. Powered by Poly Haven.</p>
<p>길·암반 구역과 보행 제한은 기존 모델을 사용합니다. 낙엽 무늬는 먼 거리에서 약해집니다. 흙길과 낙엽 바닥은 길 경계 안쪽 0.5m~바깥쪽 0.4m에서 색상·노멀·거칠기를 함께 혼합합니다. 작은 불규칙성을 더한 시각적 전환이며 보행 경계는 그대로입니다. 암반 경계도 안쪽 0.7m~바깥쪽 0.5m 구간에서 흙·낙엽과 색상·노멀·거칠기를 혼합합니다. 불규칙한 경계는 시각적 표현이며 실측 균열은 아닙니다. 높이 기반 혼합, 절벽용 트라이플래너, 입체 풀 포기는 아직 적용하지 않았습니다. 재질은 지형 실측 해상도나 산의 외곽선을 바꾸지 않습니다.</p>
<h2>지면 로딩 최적화</h2>
<p>정상 지면과 재질 경계 거리는 미리 계산한 파일을 읽습니다. 경계와 시작점 20m 안쪽은 촘촘한 메시를 유지하며, 경계 밖 단일 재질 영역만 최대 약 5.6m 변 길이로 줄였습니다. 기존 지형 삼각형의 평면을 그대로 따릅니다. 내부의 법선·색상 보간은 조금 달라질 수 있습니다. 세분화 수준이 달라지는 접합부는 이웃의 실제 꼭짓점과 속성을 재사용해 연결합니다.</p>
<p>정상 재질 메시의 꼭짓점은 2,333,889개에서 58,513개, 삼각형은 777,963개에서 111,111개로 줄었습니다. 속성·인덱스 버퍼는 약 4.38MB, gzip 전송 파일은 약 1.77MB입니다. 텍스처 원본 9개(약 5.72MB)는 유지합니다. 단일 재질 내부에서는 이웃 재질 샘플을 생략하며 경계에서만 혼합합니다.</p>
<p>지형·경로·생성 상수를 바꾼 뒤 <code>npm run prepare:summit</code>으로 다시 생성합니다. <code>npm run check:summit</code>은 입력 해시와 파일 무결성을 확인하며 정식 빌드 전에도 실행됩니다. <code>?profile=1</code>에서는 콘솔에 지면 구성 시간·첫 장면 시간·90프레임 중 마지막 60프레임 간격을 기록합니다. 첫 장면은 모든 텍스처 로드 완료를 뜻하지 않습니다.</p>
<h2>참고자료</h2><ul>
<li>사용자 제공 Google Maps 파노라마: JINK, 2018년 6월, 사진 ID CIHM0ogKEICAgIDErpDi7AE. 이미지 자체는 앱에 재배포하지 않습니다.</li>
<li>사용자 제공 Google Maps 등고선 스크린샷: 정상·연주대·연주암 주변 능선 배치 참고, 격자 해상도 및 정확도 미확인.</li>
<li>로컬 참고사진: data/references/summit/photos/photo-09.jpg, photo-10.jpg. 파일별 원출처는 photos/verified-index.json.</li>
<li><a href="/terrain/source.html">Copernicus 원본 지형 출처</a> · <a href="/structures.html">구조물 근거·제한</a></li>
</ul><p>이 추정 모델은 사진과 비슷한 공간 관계를 탐색하기 위한 것이며, 현장 GPS·정밀 표고 자료 확보 시 교체해야 합니다.</p><p><a href="/data-sources.html">자료별 라이선스·가공 데이터 다운로드</a></p></html>