Web AppBuilder로 생성한 앱을 URL 매개변수에서 직접 수정할 수 있습니다. URL은 항상 <your portal url>/apps/webappviewer/index.html?(으)로 시작하고 아래에 나온 매개변수를 하나 이상 포함합니다. 매개변수를 둘 이상 포함하려면 앰퍼샌드(&)를 사용하여 매개변수를 구분합니다. 예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d&webmap=9cf053ea602345ddae060010c470e615
팁:
이제는 URL 매개변수를 더욱 쉽게 생성할 수 있습니다. 앱에 공유 위젯을 추가한 다음 링크 옵션을 클릭합니다. 그러면 링크 미리 보기에 선택한 매개변수가 나타나고 URL 매개변수가 포함된 바로 가기 링크가 자동으로 생성됩니다. find 매개변수를 사용하려면 앱에 검색 위젯이 활성화되어 있어야 합니다.
참고 사항:
현재 3D 앱은 URL 매개변수를 지원하지 않습니다.
쿼리문 매개변수 인코딩
모든 쿼리문 매개변수를 인코딩해야 합니다. 인코딩은 잘못된 문자를 %로 대체하여 해당 16진수 값이 뒤에 나타냅니다.
예를 들어 다음은 인코딩되지 않은 URL 매개변수입니다.http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca
다음은 인코딩된 동일한 매개변수입니다.http://<your portal url>/apps/webappviewer/index.html?find=380%20new%20york%20street,%20redlands,%20ca
웹에는 인코딩된 URL을 생성할 수 있는 무료 사이트 및 도구가 많이 있습니다. 예를 들어 Albion Research Ltd에는 URLEncode and URLDecode 페이지가 있습니다. 이 항목의 나머지 예제는 인코딩되지 않았습니다.
저장된 앱 열기
Web AppBuilder로 생성해 저장한 앱을 열려면 다음 예에서와 같이 id= 및 앱의 Unique ID를 사용합니다.
http://<your portal url>/apps/webappviewer/index.html?id=6815e148ff1c4aee8dc7159816380a4d
웹 맵 정의
웹 맵을 정의하려면 다음 예에서와 같이 webmap= 및 웹 맵의 Unique ID를 사용합니다.
http://<your portal url>/apps/webappviewer/index.html?webmap=9cf053ea602345ddae060010c470e615
맵을 가운데에 배치
특정 위치에서 맵을 가운데에 두려면 지리 좌표(x, y) 또는 투영 좌표(x, y, WKID)를 사용하여 center=을(를) 설정합니다.
주의:
구분 기호로 쉼표 또는 세미콜론을 사용합니다. 숫자의 소수점으로 콜론을 사용하는 경우에는 세미콜론을 사용합니다.
다음은 지리 좌표 예입니다.
http://<your portal url>/apps/webappviewer/index.html?center=34,-50
다음은 투영된 좌표의 예입니다.
http://<your portal url>/apps/webappviewer/index.html?center=500000,5500000,102100
축척 레벨 정의
맵의 축척 레벨을 정의하려면 center= 및 level= 매개변수를 사용합니다. level 매개변수는 맵 서비스의 REST 엔드포인트에 나열된 것과 같이 캐시 축척의 레벨 ID를 허용합니다. 예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?center=20,45&level=4
축척 정의
맵의 축척을 정의하려면 center= 및 scale= 매개변수를 사용합니다. scale 매개변수는 맵 서비스의 REST 엔드포인트에 나열된 것과 같이 캐시 축척을 허용합니다. 예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?center=20,45&scale=4622324
범위 정의
extent=을(를) 사용하여 맵 범위를 정의합니다. extent 매개변수는 지리 좌표(GCS)로 MinX,MinY,MaxX,MaxY 또는 투영 좌표(PCS)로 MinX,MinY,MaxX,MaxY,WKID를 허용합니다. 구분 기호로 쉼표 또는 세미콜론을 사용합니다. 숫자의 소수점으로 콜론을 사용하는 경우에는 세미콜론을 사용합니다.
다음은 지리 좌표 예입니다.
http://<your portal url>/apps/webappviewer/index.html?extent=-117.20,34.055,-117.19,34.06
다음은 투영된 좌표의 예입니다.
http://<your portal url>/apps/webappviewer/index.html?extent=-13079253.954115,3959110.38566837,-12918205.318785,4086639.70193162,102113
맵을 열 위치 또는 피처 찾기
맵을 여는 데 사용되는 피처의 위치를 찾으려면 find=을(를) 사용합니다. 가장 일치하는 항목으로 맵이 자동으로 확대되고 설명선 표시가 맵에 추가됩니다. find 매개변수에는 한 줄 주소, 부분 주소(예: 도시 또는 국가만), 장소 이름, 위도-경도 좌표, 검색 가능한 레이어의 피처(예: PIN(필지 인지 번호) 1916352001)를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?find=380 new york street, redlands, ca
주의:
이 매개변수를 사용하려면 모든 쿼리문 매개변수가 인코딩되고 검색 위젯이 앱에서 활성화되어 있어야 합니다.
포인트 추가
맵에 포인트를 추가하려면 marker=<x>,<y>을(를) 사용합니다. 맵의 지정된 X 및 Y 위치에 포인트가 추가됩니다. 또한 다음과 같은 등록정보(선택 사항)를 포함할 수 있습니다.
- <wkid> - 맵에 추가되는 x, y 좌표의 공간 참조입니다. WKID를 포함하지 않으면 GCS 좌표가 사용됩니다.
- <encoded title> - 포인트 팝업의 제목입니다. 제목을 포함하지 않으면 팝업이 빈 상태가 됩니다.
- <encoded icon URL> - 포인트의 심볼입니다. 심볼을 포함하지 않으면 파란색 표시 심볼이 사용됩니다.
- <encoded label> - 포인트 심볼 옆에 있는 레이블입니다.
다음 사항을 고려해야 합니다.
- <x>,<y>가 필요합니다.
- 제목, 아이콘, 레이블 매개변수를 인코딩해야 합니다.
- 등록정보는 marker=<x>,<y>,<wkid>,<encoded title>,<encoded icon URL>,<encoded label> 순서로 추가해야 합니다.
- 구분 기호로 쉼표 또는 세미콜론을 사용합니다. 숫자의 소수점으로 콜론을 사용하는 경우에는 세미콜론을 사용합니다.
- 빈 값을 사용합니다. 공백은 사용하면 안 됩니다. 예를 들어 레이블을 지정하려고 할 때 다른 등록정보(선택 사항)가 없으면 다른 항목은 빈 값으로 두고 레이블을 여섯 번째 매개변수로 추가합니다(x;y;;;;레이블).
- 특정 포인트를 가운데에 두고 맵을 확대하려면 level= 매개변수를 포함합니다.
예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?marker=-79.234826;38.147884;;Race start and finish;;Grindstone 100 Ultra Marathon&level=7
피처 쿼리
피처를 쿼리한 다음 해당 피처를 확대/축소하려면 다음 옵션 중 하나를 사용합니다.
- query=<layer name>,<field name>,<field value>
- query=<layer name>, <where clause>
- query=<layer id>,<field name>,<field value>
- query=<layer id>, <where clause>
팁:
이제는 URL 매개변수를 대화형으로 생성할 수 있습니다. 앱에 공유 위젯을 추가한 다음 링크 옵션을 클릭합니다. 피처를 쿼리하고 확대 옵션을 선택하고 쿼리할 레이어, 필드, 필드 값을 선택합니다. 지정한 URL 매개변수가 포함된 URL을 링크 미리 보기에서 복사합니다. 필요하지 않은 경우 앱에서 공유 위젯을 제거합니다.
주의:
모든 쿼리문 매개변수는 대소문자를 구분하며 인코딩되어야 합니다.
레이어 이름은 변경될 수 있으므로 레이어 ID를 쿼리에 사용하는 것이 좋습니다. 아래와 같이 레이어 ID는 웹 맵 ID에서 검색할 수 있습니다. http://<your portal url>/sharing/rest/content/items/32a83775654249dcae6b8f2eff5d4072/data/?f=pjson
주의:
레이어 ID를 검색할 때는 웹 맵이 공개적으로 공유되어 있는지 확인합니다.
아래에 나와 있는 것처럼 레이어가 JSON 형식으로 맵에 개별적으로 추가된 경우를 예로 들어 보겠습니다. 레이어 ID는 Census_8491이고 필드 이름은 POP2000이며 필드 값은 1211537입니다. 이 경우 다음 쿼리를 수행할 수 있습니다.id: "Census_8491",
layerType: "ArcGISFeatureLayer",
url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3",
visibility: true,
opacity: 1,
mode: 1,
title: "Census - states",
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,POP2000=1211537
문자열 또는 ObjectID 필드를 쿼리할 수도 있습니다.
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME,California
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,STATE_NAME='California'
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_8491,OBJECTID,1
레이어는 맵 서비스의 그룹으로 추가되는 경우가 많습니다. 그룹의 하위 레이어를 쿼리하려면 레이어 ID로 <layer id_sublayer id>을(를) 대신 사용합니다. 다음 레이어를 예로 사용하는 경우 레이어 ID는 Census_3217이고 하위 레이어 ID 색인은 3입니다. 따라서 하위 레이어의 레이어 ID는 Census_3217_3이어야 합니다. 이 경우 다음 쿼리를 수행할 수 있습니다.
id: "Census_3217", layerType: "ArcGISMapServiceLayer", url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer", visibility: true, opacity: 1,
title: "Census"
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000,1211537
http://<your portal url>/apps/webappviewer/index.html?id=da80a448ac9246148da0811bddc18c94&query=Census_3217_3,POP2000=1211537
로캘 전환
앱 언어를 전환하려면 locale=<language code>을(를) 사용합니다. 지원되는 언어 코드는 ar, cs, da, de, en, el, es, et, fi, fr, he, it, ja, ko, lt, lv, nb, nl, pl, pt-br, pt-pt, ro, ru, sv, th, tr, zh-cn, vi, zh-hk, zh-tw입니다.
예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?locale=fr
사용자 인증
비공개 앱에서 사용자를 자동으로 인증하려면 token=<token>을(를) 사용합니다. 이를 통해, 사용자가 자신의 사용자 이름과 비밀번호를 입력하지 않아도 됩니다. 예를 들면 다음과 같습니다.
http://<your portal url>/apps/webappviewer/index.html?token=utmVcabc_LNyEQ7OuuHD73em0MErLR_cudJTeSIdMFTnL0poF3shVBeng5ieWHyZn0kAA8nhUg7jseQxz3bi5crnFMMpldDiJLrtzmO3jEM-ZNVIUEh5_qMms-YgXUwGgFbeQlM9WaI3jwraUqwah0yCceBAxEkEIAEWvlBEDfVsYs3LZydORRcs2QIcdLas
모바일 레이아웃이 켜지는 경우 제어
앱에서는 화면 크기에 따라 2가지 스타일의 레이아웃이 지원됩니다. 데스크톱용 스타일과 모바일 기기용 스타일이 있습니다. 화면 디스플레이의 높이나 너비가 600픽셀 미만인 경우 모바일 레이아웃이 자동으로 적용됩니다. 하지만 앱이 웹 사이트에 임베드되어 있다면 예기치 않은 동작이 발생할 수 있습니다(예: 웹 사이트의 팝업에 모바일 레이아웃 스타일이 사용됨). 레이아웃 스타일을 제어하려면 mobileBreakPoint=<pixel number>을(를) 사용하세요. 예를 들어 아래에 나와 있는 것처럼 화면 크기가 300픽셀 미만이면 데스크톱 스타일로 유지되도록 할 수 있습니다.
http://<your portal url>/apps/webappviewer/index.html?mobileBreakPoint=300