모듈:위키데이터코드
Module| 이 Lua 모듈은 약 7,400페이지에 걸쳐 사용되고 있으며, 변경은 널리 알려져 있습니다.모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경 내용을 테스트합니다.변경을 실장하기 전에 토크 페이지에서 변경에 대해 논의해 주십시오. |
이 모듈에서는 Wikidata에서 반환된 형식 또는 일반 텍스트 형식의 위도 및 경도 문자열을 첫 번째 이름 없는 매개 변수 또는 위치 매개 변수로 받아들입니다.lat/long은 해당 숫자 값을 제외한 모든 값이 제거되고 템플릿 호출에서 사용됩니다.적절한 시각 렌더링을 위해 조정하고 GeoHack에 연결합니다.
Wikidata는 다음 형식으로 텍스트 문자열을 반환합니다. 여기서 분 및 초 기호는 단일 따옴표 및 이중 따옴표용 html 숫자 참조입니다.
{{#property:P625 from=Q218501}}47°34'12"N, 52°40'55"W- 47°34'12인치, 52°40'55인치w
모듈은 다음 형식의 degree-minute-second(dms) 플레인텍스트 문자열을 받아들입니다.
47°34'12"N, 52°40'55"W
여기서 minutes and seconds 인디케이터는 단일 따옴표 또는 단일 소수 기호와 이중 소수 기호(", "; U+2032, U+2033)입니다.
10진수 형식의 위도 및 경도도 사용할 수 있습니다.
53.67667°N 112.82861°W
템플릿의 이유:좌표 파라미터와 템플릿파라미터는 다양한 좌표 파라미터와 템플릿파라미터가 지원됩니다.이 모듈에서는 이들 파라미터를 받아들이지만 템플릿에 콜을 전송하는 것 이외에는 동작하지 않습니다.좌표. 모듈 내{{#invoke:}}좌표 파라미터가 제공되는 경우 두 번째 이름 없는 파라미터 또는 위치 파라미터여야 합니다.템플릿 파라미터의 이름은 다음 순서로 지정됩니다.{{#invoke:}}중요하지 않습니다.
사용.
Wikidata에서 위도/경도를 추출하는 일반적인 템플릿 용도는 다음과 같습니다.
{{#invoke:WikidataCoord main {{#property:P625 from={{{1 }}}}} {{{2 }}} display={{{display }}} format={{{format }}} name={{{name }}} notes={{{notes }}}}}
요구하다('실패') 현지의 취득하다 = 요구하다('모듈:인수').취득하다 현지의 패턴 = { '(%d+)°(%d+)'([%d%]+)"([NS]),%s*(%d+)°(%d+)'([%d%]+)"([EW])'', -- 반환된 데이터가 55°1인 경우3'12"N, 23°17"17"e '(%d+)°(%d+)'(NS), %s*(%d+)°(%d+)'([EW])'', -- 반환된 데이터가 54°2인 경우4'N, 25°25'e '(%d+)°(%d+)[표준]\']([%d%]+)[표시]\"]([NS]),?%s*(%d+)°(%d+)[ ]\']([%d%]+)[표시]\"([EW]),, -- args [ 1 ]가 따옴표 또는 소수점을 사용하는 dms 문자열인 경우 '(%d+)°(%d+)[표준]\']([NS]),?%s*(%d+)°(%d+)[ ]\'([EW]),, -- args [ 1 ]가 따옴표 또는 소수점을 사용하는 dms 문자열인 경우, 짧은 형식입니다. '(%d+%?)'%d*)°([NS]),?%s*(%d+%)?%d*)°([EW]),, -- args [ 1 ]가 소수점 문자열인 경우 } 현지의 파라미터 = {'디스플레이', '형식', 이름, '메모'}; -- {{param}} 템플릿파라미터 --[----------------------------------------------------------------------------------------------- 변수 설정 여부.변수는 0이 아니거나 비어 있지 않을 때 설정됩니다. ]] 현지의 기능. is_set( 변화하다 ) 돌아가다 것은 아니다. (변화하다 == 제로 또는 변화하다 == ''); 끝. --[----------------------------------------------------------------------------------------------- 템플릿 진입점.이 함수는 최대 2개의 이름 없는 위치 파라미터를 사용합니다. 1 = 일반적으로 Wikidata 호출에서 다음과 같은 좌표 문자열: {{#wikidata:P625 from=Q...}} 2 = 좌표 파라미터. 템플릿:조정 또한 지정된 파라미터의 display=, format=, name=, notes=를 가져와서 {{param}}에 전달합니다. {{coord}}에 대해 Wikidata 좌표 문자열을 이름 없는 매개 변수로 재구성합니다. {{#제외:Wikidata Coord 메인 {{#프로퍼티:P625 from=param {1}}} {{2}} 디스플레이=param {display} 형식=param {format}} 이름=param {name}} 노트=param {notes}}}}} ]] 현지의 기능. 주된 (틀) 현지의 args = 취득하다(틀); 현지의 lat_long = {}; -- Wikidata 반환에서 추출된 위도/긴 좌표 표 한다면 것은 아니다. is_set (args[1]) 그리고나서 --wikidata가 아무것도 반환하지 않는 경우(Q가...)틀렸다) 돌아가다 '<span style="class-size:100%" class="error">{WikidataCoord} – 좌표 데이터가 없습니다.</span>'; -- 에러 메시지와 종료 또 다른 위해서 _, 양식 에 아이페어 (패턴) 하다 lat_long[1], lat_long[2], lat_long[3], lat_long[4], lat_long[5], lat_long[6], lat_long[7], lat_long[8] = 음.스트링.경기 (args[1], 양식) 한다면 lat_long[1] 그리고나서 브레이크.; 끝. 끝. 끝. 한다면 것은 아니다. lat_long[1] 그리고나서 돌아가다 '<span style="class-size:100%" class="error">{Wikidata Coord} – 잘못된 형식의 좌표 데이터 </span>'; -- Wikidata가 다른 것을 반환했습니다. 끝. 한다면 is_set (args[2]) 그리고나서 -- 좌표 파라미터는 두 번째 이름 없는 위치 파라미터에 있습니다. table.insert (lat_long, args[2]); -- 좌표 뒤에 좌표 파라미터를 다음 위치 파라미터로 추가합니다. 끝. 위해서 _, PARAM. 에 아이페어 (파라미터) 하다 한다면 is_set (args[PARAM.]) 그리고나서 lat_long[PARAM.] = args[PARAM.]; -- 이름 있는 파라미터에 값이 있는 경우 추가합니다. 끝. 끝. 한다면 args._개요 그리고나서 돌아가다 table.concat ({'<code style="color:color;background:background;border:none;">{code`', table.concat (lat_long, ' ' ), '}} </code>}); 끝. 돌아가다 틀:확장 템플릿 ({직함 = '실패', args=lat_long}); -- 템플릿 {{wikidata lat/long}을(를) 사용하여 호출합니다. 끝. --[--------------------------------------------------------------------------------------------------------------- ]] 돌아가다 {주된 = 주된}