고급협동조합의 OSM
article thumbnail

먼저 다음과 같이 jQuery와 taglists.js를 웹 페이지에 포함(include)하세요.

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="https://taginfo.openstreetmap.org/js/taglists.js"></script>

※ jquery를 포함할 때는 위 코드를 그대로 사용해도 좋지만, jquery 공식 홈페이지에서 최신 버전을 확인한 후 해당 버전에 알맞는 URL을 포함하는 것이 좋습니다.

 

그러고 나서 표를 삽입할 부분에 다음과 같이 div 요소를 추가하세요.

<div class="taglist"
     data-taginfo-taglist-tags="highway=motorway,trunk,primary,secondary,tertiary">
</div>

태그를 나열할 때는 키1=값1a,값1b,...,키2=값2a,값2b,...와 같은 방법을 사용합니다. 여기서는 

  1. highway=motorway
  2. highway=trunk
  3. highway=primary
  4. highway=secondary
  5. highway=tertiary

를 나열하는 목록을 만들어 보겠습니다.

 

기본적으로 표의 언어는 영어입니다. 언어를 한국어로 바꾸고 싶다면 다음과 같이 data-taginfo-taglist-options에 "lang": "ko"를 전달하면 됩니다.

<div class="taglist"
    data-taginfo-taglist-tags="highway=motorway,trunk,primary,secondary,tertiary"
    data-taginfo-taglist-options='{"lang": "ko"}'>
</div>

여기에 더해 오픈스트리트맵에서 태그가 사용된 횟수까지 표에 나타내고 싶다면 다음과 같이 "with_count": true를 덧붙입니다.

 

<div class="taglist"
    data-taginfo-taglist-tags="highway=motorway,trunk,primary,secondary,tertiary"
    data-taginfo-taglist-options='{"lang": "ko", "with_count": true}'>
</div>

더 많은 옵션은 상술한 Ko:Taginfo/Taglists 문서를 참고하세요.

 

이제 convert_to_taglist 함수를 호출해 표를 생성합니다.

<script type="text/javascript">
jQuery(document).ready(function() {
    taginfo_taglist.convert_to_taglist('.taglist');
});
</script>

 

 

생성된 표와 HTML 요소

함수가 호출되면 작성한 div 요소 안에 표(table)가 생깁니다. 키와 값에 달린 링크는 오픈스트리트맵 위키 문서로 이어집니다.

위 스크린샷에서도 볼 수 있듯 생성된 table 요소에는 taginfo-taglist 클래스가 포함되어 있습니다. 이를 활용해 CSS로 표의 스타일을 자유자재로 바꿀 수 있습니다.

 

직접 시험해 보고 싶으신 분들은 아래 코드를 메모장에 붙여넣고 html 확장자로 저장한 후 웹 브라우저로 열어 보세요.

<html>
<meta charset="utf-8">
<head>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="https://taginfo.openstreetmap.org/js/taglists.js"></script>
</head>
<body>
    <div class="taglist"
     data-taginfo-taglist-tags="highway=motorway,trunk,primary,secondary,tertiary"
     data-taginfo-taglist-options='{"with_count": true, "lang": "ko"}'>

</div>

<script type="text/javascript">
jQuery(document).ready(function() {
    taginfo_taglist.convert_to_taglist('.taglist');
});
</script>
</body>
</html>

이 기능은 taginfo의 API 호출을 이용합니다. 자세한 정보는 https://taginfo.openstreetmap.org/taginfo/apidoc#api_4_tags_list 또는 https://taginfo.osm.kr/taginfo/apidoc#api_4_tags_list(대한민국 전용 taginfo 인스턴스)를 참고하세요.

※ 여기서 taginfo.openstreetmap.org 대신 다른 taginfo 인스턴스의 주소를 넣어도 (대부분) 문제 없이 작동합니다. 예를 들어 https://taginfo.openstreetmap.org/js/taglists.js 대신 https://taginfo.osm.kr/js/taglists.js를 포함(include)할 수도 있습니다. 표가 처음으로 생성되는 속도가 다소 느리니(0.5초 정도) 접속 속도에 따라 원하는 서버를 골라서 사용할 수 있겠습니다.

profile

고급협동조합의 OSM

@고급협동조합

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!