사용자 고유의 사용자 정의 웹 앱 템플릿을 생성하려면 기존 템플릿 중 하나를 다운로드하여 수정하거나, 포털의 콘텐츠와 함께 작동하도록 기존 웹 앱을 업데이트하거나, ArcGIS 웹 API 중 하나를 사용하여 새 웹 앱을 생성하면 됩니다. 어떤 방법으로 템플릿을 생성하든 URL 매개변수 및 맵을 사용하게 됩니다. 그룹 템플릿을 생성할 경우 그룹과 함께 작업할 수 있는데, 이때 Bing 베이스맵 작업, 비공개 맵 접근 및 프록시 또는 CORS(Cross-Origin Resource Sharing)가 필요한 리소스 작업에 대한 추가 요구 사항을 고려할 수 있습니다. 또한 항목을 포털에 추가하고, 이를 내 기관의 템플릿 그룹 중 하나와 공유할 수 있습니다(내 기관에서 사용자의 템플릿을 해당 템플릿 갤러리에서 사용할 계획인 경우).
Portal for ArcGIS 에는 ArcGIS API 3.15 for JavaScript가 포함되어 있습니다. 자체 API를 호스팅하고 포털이 새로 생성된 앱 템플릿의 로컬 버전을 가리키도록 지정할 필요가 없습니다. 웹 앱 템플릿에서 설치된 API를 자동으로 참조합니다. 로컬로 설치된 API는 일반적으로 https://webadaptorhost.domain.com/webadaptorname/jsapi/jsapi에서 사용할 수 있습니다.
주의:
Portal for ArcGIS와 함께 제공된 웹 앱 템플릿 파일을 변경하지 마세요. 이러한 파일은 포털에서 관리되므로 변경할 경우 이후에 포털에서 덮어쓸 수 있습니다. 템플릿을 사용자 정의하려면 다음과 같이 하세요.
- 사용자 정의할 기존 템플릿 파일의 복사본을 만듭니다.
- 복사본을 디스크의 다른 위치에 저장합니다.
- 템플릿 복사본을 사용자 정의합니다.
- 포털에 새 템플릿으로 추가합니다.
이 항목에서는 웹 앱 템플릿을 생성하는 방법을 다룹니다. 콘텐츠를 생성하고 내 기관의 그룹에 공유할 권한이 있는 것으로 가정합니다. 템플릿을 생성한 후 이를 구성하도록 만들 수 있습니다. 구성 설정 템플릿을 사용하면 사용자가 앱의 모양과 동작을 사용자 정의할 수 있습니다.
웹 맵
앱 템플릿은 맵 뷰어에 현재 보이는 맵을 사용하도록 설계되었습니다. 일반적으로 템플릿은 웹 맵 URL 매개변수에 지정된 웹 맵을 기반으로 맵을 생성합니다. 각각의 웹 API에는 웹 맵 ID의 정보를 사용하여 맵을 생성하는 도우미 메소드가 있습니다.
예를 들어 ArcGIS API for JavaScript esri.arcgis.utils.createMap 메소드를 사용하여 입력 ID를 기반으로 맵을 생성할 수 있습니다. 또한 esri.arcgis.utils.createMap에 대한 동기 요청이 완료된 경우에 실행되는 콜백 함수를 포함할 수 있습니다.esri.arcgis.utils.createMap(webmap,"map",{
mapOptions:{
slider:false
},
bingMapsKey:bingMapsKey
}).then(function(response){
map = response.map;
});
참고 사항:
웹 맵에 Bing Maps 베이스맵이 포함된 경우 createMap 메소드를 사용할 때 Bing Maps 키를 지정해야 합니다. 그 밖에도 슬라이더, 탐색, 속성 등의 보기 여부와 같은 여러 가지 기타 맵 옵션을 지정할 수 있습니다.
callback 함수는 맵 개체, 레이어 등에 접근할 수 있는 응답 개체에 대한 접근 권한을 제공합니다.
앱 템플릿 등록
앱 템플릿에서 보안 항목으로 작업하고 있으면 먼저 플랫폼에 등록하는 것이 좋습니다. 등록하려면 새 웹 매핑 응용프로그램을 추가하고 웹 서버에서 호스팅하는 앱 템플릿으로 URL을 설정합니다.
항목을 추가한 후 앱 등록을 해야 합니다. 웹 앱이므로 유형을 Browser로 유지하고 Redirect URI가 템플릿 앱 URL을 가리키도록 합니다.
앱을 등록하면 이제 고유한 응용프로그램 ID를 가지게 됩니다.
등록된 앱 ID를 인식하도록 Identity Manager로 작업합니다. 자세한 내용은 ArcGIS API for JavaScipt에 포함되어 있는 OAuth Basic 및 OAuth Popup OAuth 샘플을 참고하세요.
그룹
그룹 템플릿은 지정된 그룹의 콘텐츠를 앱으로 보여줍니다.
ArcGIS REST API를 사용하면 포털의 콘텐츠에 접근할 수 있습니다. 이를 사용하여 입력된 그룹 ID를 기반으로 그룹 콘텐츠를 검색할 수 있습니다.
다음 예시에서는 입력 ID로 그룹을 찾기 위해 쿼리를 수행합니다.
var portal = new esri.arcgis.Portal('https://webadaptorhost.domain.com/webadaptorname/');
dojo.connect(portal, 'onLoad',function(){
portal.queryGroup(groupid).then(function(response){
var group = response.results[0];
});
});
그룹을 찾은 후에는 그룹에서 항목을 검색하기 위해 쿼리할 수 있습니다. 이 예시에서는 그룹을 쿼리하여 유형이 Web Map 또는 Web Mapping Application인 항목 5개를 찾습니다.var queryParams = {
q: 'type:"Web Map" -type:"Web Mapping Application"',
num: 5
};
group.queryItems(queryParams).then(function(response){
var groupItems = response.results;
});
추가 고려 사항
일반적으로 웹 앱은 많은 유형의 콘텐츠를 사용하도록 설계되므로 Bing Maps 베이스맵, 비공개 콘텐츠 등이 포함된 맵을 처리하도록 템플릿을 설정해야 할 수 있습니다. 특정 고려 사항은 다음과 같습니다.
Bing Maps 키
디스플레이하려는 맵에서 Bing Maps 베이스맵을 사용하는 경우 앱에 Bing Maps 키를 포함해야 합니다. Bing Maps 키는 createMap 메소드의 매개변수로 제공됩니다.
프록시 및 CORS 지원
앱에서 교차 도메인 요청을 보낼 경우 CORS(Cross-Origin Resource Sharing)를 활성화하거나 앱에 프록시를 추가해야 합니다.
포털에 템플릿 추가
템플릿을 생성하고 웹 서버에서 호스팅한 경우 포털에 웹 앱 항목으로 템플릿을 추가하고 앱에 대한 URL을 지정합니다. 그런 다음 구성 설정을 선택하고, API에서 JavaScript를 선택합니다.
제목과 요약은 사용자가 템플릿 갤러리의 템플릿 항목을 가리키면 나타나므로, 자세히 씁니다. 필요한 경우 앱 파일이 포함된 ZIP 파일을 생성해 항목에 첨부하여 다운로드 기능을 제공할 수 있습니다.
내 기관 앱 갤러리의 템플릿 사용
내 기관의 맵 뷰어 앱 갤러리 또는 그룹 앱 갤러리에 있는 템플릿을 사용하려면 해당 갤러리의 그룹과 항목을 공유합니다. 그러면 내 기관의 관리자가 사용자의 템플릿이 포함된 그룹을 사용하도록 맵 뷰어를 구성하거나 그룹을 구성할 수 있습니다.