
사진이 촬영된 위치를 찾아내는 에이전트 스킬 — OpenStreetMap 지형, 고도 스카이라인, 위성 이미지, 스트리트 뷰를 활용하며 그 과정을 보여줍니다. Claude Code, Codex, Cursor, Gemini CLI, OpenCode, GitHub Copilot과 함께 작동합니다.
사진이 어디서 촬영되었는지 찾아내고, 그 과정을 보여주는 에이전트 스킬.
호환 대상
…그리고 SKILL.md를 읽고 셸 명령을 실행하는 다른 모든 에이전트.
텍스트도, 번호판도, 랜드마크도 없다. 다리 하나, 산 하나. 2 m 이내로 위치를 특정했다.
npx skills add Oldcircle/geo-sleuth
에이전트를 선택하라는 메시지가 나오면 선택하세요. 그런 다음 에이전트에게 사진을 건네고 이렇게 말하세요:
이 사진이 어디서 찍혔는지 찾아줘
처음 사용할 때는 에이전트에게 설치된 스킬의 scripts/ 폴더에서 doctor.py를 실행하도록 요청하고, 실패한 검사를 해결하세요(요구 사항 및 설정 참조). 그게 인터페이스의 전부입니다. 에이전트가 SKILL.md를 읽고, 스크립트를 실행한 뒤, 카메라 위치와 카메라가 향한 방향, 그리고 위성 증거 이미지를 가지고 돌아옵니다. 폴더를 직접 복사하는 편이 좋으신가요? 설치를 참조하세요.
SKILL.md와 순수 Python 스크립트 — 이므로 같은 폴더가 Claude Code, Codex, Cursor, Gemini CLI, OpenCode, GitHub Copilot에서 실행됩니다.이 사진들 중 어느 것에도 GPS 데이터가 없었습니다. 각 사례는 스킬이 사진에서 읽어낸 것, 검색 범위를 어떻게 좁혔는지, 그리고 결과가 확인된 카메라 위치에서 얼마나 떨어졌는지를 보여줍니다.
![]() |
![]() |
![]() |
| 1 · 논과 고가교 철도 교량 × 스카이라인 × 교각 수. |
2 · 사막 스카이라인 전력선 × 스카이라인 × 1° 기울어진 폰. |
3 · 벚꽃 거리 가로수 공개 데이터 × 그림자 × 스트리트 뷰. |
| ±2 m 광둥성 칭위안 |
100 m 이내 칭하이성 다차이단 |
3 m 캐나다 밴쿠버 |
EXIF가 제거된 폰 사진: 수확이 끝난 논 가장자리의 흰색 오븐, 멀리 이어지는 긴 고가교, 오른쪽의 가파른 산. 프레임 안에 글자 하나 없습니다. 이 스킬이 설치된 에이전트에게 메시지 하나를 보냈더니, 카메라 위치와 카메라가 향한 방향을 가지고 돌아왔습니다.
사진 → 27,335 → 171 → 14,372 → 22 → 3 → 1 → ±2 m
| 단계 | 한 일 | 남은 후보 |
|---|---|---|
| 사진 읽기 | 고가교의 전신주는 전차선 지주이므로 전철화된 철도입니다. 교각 간격을 자로 사용(32 m 경간 가정): 왼쪽 구간은 약 0.5 km 거리, 오른쪽 구간은 1 km 이상. 가파른 산은 약 3 km 거리. 벼는 수확되었지만 풀은 아직 푸르므로 아직 서리가 내리지 않았습니다. | 중국 남부, 증명이 아닌 추측으로 |
| 지역 스캔 | OpenStreetMap에서 해당 지역의 모든 철도 교량을 가져옴: 27,335개 구간. 400 m마다 지점을 샘플링하고 각 지점에서 고도 데이터로 360° 지평선을 계산. 근처에 평지가 있고, 몇 km 이내에 뚜렷한 산이 있으며, 그 옆에 평평한 지평선이 있는 지점을 유지. | 171개 지점 |
| 스카이라인 피팅 | 각 지점 주변에 후보 카메라 위치를 배치하고 각 위치에서 보이는 능선을 렌더링: 14,372개 위치. 상위 20개가 서로 0.1° 이내였으므로 제약을 추가: 교량이 왼쪽에는 가까이, 오른쪽에는 멀리 있어야 함. | 22개 |
| 오버레이 확인 | 상위 세 개의 능선을 사진 위에 다시 그림. 1위(푸저우)는 오븐 뒤에 숨은 돌출부가 있었는데, 그것이 높은 점수를 받은 이유. 3위(후이저우)는 사진이 평평한 곳에서 경사져 있었음. 2위(칭위안)는 산기슭부터 프레임 가장자리까지 들어맞았음. | 1개 |
| 교각 수 | 사진 속 17개 교각은 카메라로부터의 17개 방위가 됩니다. 이것이 철도 선에 닿는 지점의 교차점은 균등한 간격이어야 합니다. 스카이라인과 결합: 먼저 약 300 m 길이의 띠, 그다음 단일 지점. | ±2 m |

