SF 두 지점 사이 가장 평탄한 경로를 찾는 Flatten SF, 해커뉴스에서 정확도 지적과 파서 버그 수정까지 오감
- Flatten SF는 샌프란시스코 두 지점 사이 경로 30개를 최단에서 최평탄까지 계산해 보여주는 웹 도구임. USGS 1m lidar 고도와 Overture/OpenStreetMap 도로 그래프의 16만 개 구간을 브라우저에서 직접 계산함.
- 슬라이더는 거리와 누적 상승의 맞바꿈 전체를 훑고, 오르막 1ft를 걷기 200ft와 맞바꾸는 지점에서 가장 평탄한 경로가 나옴. 경사도는 표시만 하고 최적화 대상은 아님.
- 상승은 출발점과 도착점의 순 고도차가 아니라 누적 상승량이고, 계단은 도보에서 허용하고 자전거에서는 제외함. 장소 검색은 오프라인이라 SF 주소와 교차로가 페이지에 내장돼 있음.
- Outer Richmond Cabrillo St 경로가 틀렸다는 지적에 개발자가 Slow Streets의 destination-only 태그를 보행 금지로 읽은 파서 버그를 고쳐 배포했고, 이제 Cabrillo → 23rd → Geary로 안내함.
- Downtown에서 Bernal까지 가장 평탄한 경로가 최단보다 0.2mi 길 뿐인데 상승이 200ft와 500ft, 최대 경사가 12%와 22%로 갈린다는 댓글이 Apple Maps는 매번 최단만 고른다고 지적함.
Hacker News 의견들
위글! 예전 출퇴근길이 그립네.
상승 1ft를 걷기 200ft로 환산하는 건 너무 단순한데. 완만하게 10까지 오르는 게 가파르게 8 오르는 것보다 나을 때도 있으니 비용 곡선을 사용자가 정하게 하면 어떨까.
그건 OpenTripPlanner 쓰면 됨. 트라이앵글에서 거리랑 상승, 안전 시설을 사용자가 맞바꿀 수 있음.
정확하지 않음. Outer Richmond Cabrillo St에서 4th Ave로 찍었는데 평평한 23rd Ave 대신 25th Ave 올라서 Geary로 가라고 하더라.
USGS 3DEP DTM 25cm를 썼으면 훨씬 나았을 텐데. AWS S3에 무료로 올라와 있음.
그거 SF Slow Streets 때문이고 파서 버그였음. Cabrillo의 destination-only 태그를 보행 금지로 읽어서 길을 아예 못 봤던 거라, 고쳐서 배포했고 이제 Cabrillo → 23rd → Geary로 안내함.
Google Maps 자전거 모드가 이미 하는 거 아님?
지켜야 할 제약이 하나가 아님. 자전거 보호차로 있는 언덕이 평평한 45mph 도로보다 나음.
Downtown에서 Bernal Progressive Grounds로 찍어보면 가장 평탄한 경로가 최단보다 0.2mi 길 뿐인데 상승은 200ft 대 500ft, 최대 경사는 12% 대 22%로 갈림. Apple Maps는 매번 최단만 고름.
Mission 22번가랑 San Jose에서 이상하게 꺾이더라. 22번가로 계속 가면 되는데 San Jose로 훅 내려갔다 되돌아옴. 색상 코딩도 연속 슬라이더도 UI 결정이 이해 안 감.
Bay Area면 bikehopper.org 봐라. 1m DTM 쓰고 자전거 인프라랑 대중교통까지 반영함. SF는 큰 건물이랑 나무 때문에 DTM이 필수임.
경사 자체를 최소화하는 옵션도 있었으면. SOMA에서 Nob Hill 갈 때 Taylor로 직진하는 게 상승은 최소지만 Polk → California로 돌아가는 게 훨씬 나음.
그러면 경로가 미친 듯이 길어질 텐데. 산을 최소 경사로 오르면 끝없이 지그재그 치게 됨.
근데 상승은 경로랑 무관한 거 아님?
중간에 언덕이 있으면 아님. 순 고도차는 출발점과 도착점 차이로 정해지지만 자전거에서는 중간 구간이 에너지를 먹어서 누적 상승을 씀. 다리에는 회생제동이 없으니 내려갈 때 칼로리를 돌려받지 못함.
Geary랑 Divisadero로 자전거 타라고 하는데 싫음. 죽기 싫음.
맞는 지적임. 아직 자전거 도로를 모르고, DataSF에서 SFMTA 자전거망 데이터를 가져오는 걸 알아볼게.
Mission Bernal Safeway에서 Diamond Heights Safeway로 29번가를 안내하는데 경사가 22.7%임. Clipper로 돌아가면 12%인데. 출발점만 반 블록 옮기면 13%짜리 합리적인 경로가 나옴.
슬라이더는 거리랑 총 상승만 맞바꾸고 경사도는 표시만 함. 최적화 목표에 넣을 만한 지적임.
SF에서 러닝하면서 수직 상승을 최대화하는 편이라 가장 가파른 경로 옵션도 넣어줬으면.