Skip To Content

호스팅 타일 레이어 발행

타일 레이어는 미리 그려진 맵 또는 타일 컬렉션을 사용한 대용량 데이터셋의 빠른 시각화를 지원합니다. 호스팅 타일은 운영 레이어에 대한 지리적 컨텍스트를 제공합니다. 예를 들어 근린의 도로 타일을 포함하여 피처 레이어에서 도로 표지판에 대한 시각적 기준을 제공할 수 있습니다.

다음 방법 중 하나를 사용하여 타일 레이어가 ArcGIS Enterprise에 호스팅되도록 발행할 수 있습니다.

발행 시 타일에 대한 캐시를 자동으로 생성하거나 발행 후 캐시를 수동으로 생성할 수 있습니다. 자세한 내용은 타일 캐시에 대한 모범 사례를 참고하세요.

호스팅 타일 레이어를 발행하려면 기관에서 다음 중 하나의 구성원이어야 합니다.

ArcGIS Pro, ArcMap 또는 타일 패키지에서 발행하는 경우 타일 패키지 파일이 콘텐츠의 항목으로 추가됩니다. 타일 레이어 기능을 확인한 후에는 타일 레이어 패키지를 포털에서 삭제하여 포털 머신의 저장 공간을 절약할 수 있지만, 타일 패키지가 더 이상 필요하지 않다고 확신하는 경우에만 가능합니다.

호스팅 피처 레이어에서 발행

소유한 기존 호스팅 피처 레이어를 사용하여 기관에 호스팅 타일 레이어를 발행할 수 있습니다. 캐시된 타일은 동적으로 렌더링된 피처보다 더 빠르게 그려지기 때문에 이는 대용량 데이터셋을 시각화하는 유용한 워크플로입니다.

비고:

  • 호스팅 피처 레이어에 대한 공간 속성 편집 내용이 호스팅 타일 레이어에 자동으로 반영되지는 않습니다. 업데이트된 호스팅 피처 레이어에서 호스팅 타일 레이어를 다시 발행해야 합니다.
  • 호스팅 피처 레이어에는 호스팅 타일 레이어를 발행하지 못하게 할 수 있는 스타일 지정 제한 사항이 있습니다.
  • 멀티패치 또는 포인트 클라우드 호스팅 피처 레이어에서는 호스팅 타일 레이어를 발행할 수 없습니다.

호스팅 피처 레이어에서 호스팅 타일 레이어를 발행하려면 다음 단계를 따르세요.

  1. 기관에 로그인하여 콘텐츠 > 내 콘텐츠를 클릭합니다.
  2. 발행하려면 다음 중 하나를 수행하세요.
    • 발행할 호스팅 피처 레이어를 클릭하고 발행을 클릭합니다.
    • 생성 > 타일 레이어를 클릭하고 타일로 발행할 피처 레이어를 선택합니다.
  3. 호스팅 타일 레이어의 제목, 태그, 요약을 입력합니다.
  4. 기관 관리자가 콘텐츠 범주를 구성한 경우 범주 할당을 클릭하고 최대 20개의 범주를 선택하여 사용자가 항목을 찾도록 지원할 수 있습니다. 범주 필터링 체크 박스에 입력하여 범주 목록의 범위를 좁힐 수도 있습니다.
  5. 호스팅 타일 레이어가 저장될 폴더를 선택합니다.
  6. 필요에 따라 가시 범위 슬라이더의 끝점을 드래그하여 레이어가 표시될 범위를 변경합니다.
    주의:

    포털에서 제안 축척 범위가 제공되지만 이를 수정할 수 있습니다. 하지만 축척 범위에 큰 축척을 포함하면 호스팅 서버에서 사용되는 리소스가 크게 증가할 수 있습니다. 따라서 데이터의 정밀도를 벗어나는 타일을 생성해서는 안 됩니다.

  7. 확인을 클릭합니다.

    호스팅 타일 레이어가 생성되며 해당 항목 페이지가 나타납니다.

ArcGIS Pro에서 맵 정의 및 발행

ArcGIS Pro의 맵을 통해 호스팅 타일 레이어를 발행할 수 있습니다.

비고:

ArcGIS Pro의 레이어에 정의 쿼리가 적용되어 있다면 ArcGIS는 발행된 호스팅 타일 레이어에 정의 쿼리를 적용합니다. 그러나 모든 데이터는 ArcGIS Enterprise에 복사됩니다. 데이터의 일부분을 발행하려면 해당 일부분을 다른 피처 클래스로 내보내 이 클래스를 발행해야 합니다.

웹 브라우저는 맵을 제작할 때 기존에 사용했던 일부 복잡한 지리 심볼을 표시할 수 없습니다. 대부분의 심볼 유형을 사용할 수 있지만 발행하면 심볼이 다운그레이드되는 경우도 있을 수 있습니다. ArcGIS Server 도움말에서 피처 서비스를 발행할 맵 작성을 참고하여 지원되는 심볼에 대한 자세한 내용을 확인한 후 발행하기 전에 맵 심볼에서 필요한 사항을 변경하세요.

  1. ArcGIS Pro를 시작하고 발행할 맵이 포함된 프로젝트를 엽니다.
  2. 포털 연결이 활성화되어 있어야 하며 콘텐츠를 생성하고 호스팅 타일 레이어를 발행할 권한이 있는 계정을 사용하여 내 기관에 로그인해야 합니다.
  3. 타일 레이어를 발행하려면 다음 중 하나를 수행하세요.
    • 콘텐츠 창에서 레이어를 선택합니다. 선택 셋을 마우스 오른쪽 버튼으로 클릭하고 웹 레이어로 공유를 클릭합니다.
    • 맵의 모든 레이어를 발행하려면 공유 탭의 공유 그룹에서 웹 레이어를 클릭한 다음 웹 레이어 발행을 클릭합니다.

    팁:

    웹 레이어로 공유 메뉴 옵션이 활성화되지 않은 경우 다음 중 하나 때문일 수 있습니다.

    • 로그인한 계정에 호스팅 레이어를 발행할 권한이 없습니다.
    • 포털에 웹 레이어를 호스팅하는 데 필요한 호스팅 서버가 구성되어 있지 않습니다.
    • 지원되지 않는 멀티패치 레이어를 발행하려고 합니다.

  4. 타일 레이어의 이름을 입력합니다.
  5. 모든 데이터 복사에서 레이어 유형에 대한 타일을 선택합니다.

    데이터 복사 시에는 한 옵션만 선택할 수 있으므로 이 옵션을 선택하면 나머지 레이어 유형 옵션이 자동으로 선택 취소됩니다.

  6. 타일 레이어에 대한 요약 및 태그를 입력합니다.
  7. 기본 설정에 따라 이 레이어는 내 콘텐츠에 저장됩니다.

    폴더 이름을 입력하거나 기존 폴더를 검색하여 내 콘텐츠 내의 하위 폴더에 저장할 수 있습니다.

  8. 호스팅 타일 레이어에 접근할 수 있도록 하려는 사람을 지정합니다.

    발행하는 모든 레이어는 내 기관 내의 개인 작업 영역(내 콘텐츠)에 자동으로 공유됩니다. 콘텐츠는 다음 중 하나 이상과 공유되지 않는 한 다른 사용자가 접근할 수 없습니다.

    • 모든 사람 - 이 옵션을 선택하면 레이어가 기관에 접근할 수 있는 모든 사용자에게 제공됩니다.
    • 기관의 이름 - 이 옵션을 선택하면 레이어를 기관에 있는 모든 인증된 사용자와 공유할 수 있습니다.
    • 그룹 - 드롭다운 목록에서 그룹을 선택하여 소속 그룹의 구성원과 레이어를 공유할 수 있습니다.
  9. 구성 탭을 클릭한 다음 웹 레이어 등록정보 구성 버튼을 클릭하여 캐시 설정을 지정합니다.
  10. 옵션에서 타일링 스키마 옵션을 선택합니다.
  11. 세밀도 막대의 크기를 조정하여 타일 레이어의 최소 및 최대 크기를 나타냅니다.

    최소 및 최대 크기를 변경하면 결과 캐시의 예상 크기가 변경됩니다.

  12. 타일 캐시를 생성할 시간과 위치를 선택합니다.
    • 레이어를 발행할 때 타일이 호스팅 서버에 생성되도록 하려면 서버에서 자동으로 캐싱을 선택합니다.
    • 호스팅 서버에서 캐시를 만들고 저장하려 하지만 발행 후에 직접 캐시를 만들려는 경우 서버에서 수동으로 캐싱을 선택하고 레이어가 발행된 후 포털 웹사이트에서 타일 레이어를 열고 수동으로 캐시를 만듭니다.
    • ArcGIS Enterprise 서버 중 하나에서 캐시를 만들고 저장하려 하지만 발행 후에 직접 캐시를 만들려는 경우 서버에서 수동으로 캐싱을 선택하고 레이어가 발행된 후 포털 웹사이트에서 타일 레이어를 열고 수동으로 캐시를 만듭니다.
    • 캐시가 ArcGIS Pro 머신에 생성되고 패키지되도록 하려면 로컬로 캐싱을 선택하고 임시 타일 패키지가 저장될 ArcGIS Pro 머신의 위치를 지정합니다. 타일 패키지가 호스팅 서버에 자동으로 업로드되어 압축이 풀리고 캐시가 포털의 호스팅 서버에 저장됩니다.
    • 캐시가 ArcGIS Pro 머신에 생성되고 패키지되도록 하려면 로컬로 캐싱을 선택하고 임시 타일 패키지가 저장될 ArcGIS Pro 머신의 위치를 지정합니다. 타일 패키지가 ArcGIS Enterprise에 자동으로 업로드되어 압축이 풀리고 캐시가 저장됩니다.
  13. 맵을 다운로드하여 오프라인에서 사용할 수 있도록 하려면 클라이언트가 캐시 타일을 내보내도록 허용을 선택합니다.
  14. 클라이언트가 캐시 타일을 내보내도록 허용을 선택한 경우 클라이언트가 한 번에 오프라인 상태로 전환할 수 있는 최대 타일 수를 다음으로 내보내기 제한 필드에 지정합니다.
  15. 캐싱 옵션에서 사용할 타일의 수 및 저장 공간을 계산하려면 예상 섹션을 열고 계산을 클릭합니다.

    캐시 설정을 변경하고 다시 계산하여 설정이 캐시에 어떤 영향을 주는지 확인할 수 있습니다.

  16. 콘텐츠 탭을 클릭하여 의도한 데이터 레이어가 타일 레이어에 포함되는지 확인합니다.
  17. 분석을 클릭하여 오류나 문제가 있는지 확인합니다.

    발견된 문제는 메시지 탭에 나열됩니다. 각 메시지를 마우스 오른쪽 버튼으로 클릭하여 자세한 내용을 확인하고, 오류나 경고에 대한 도움말을 읽고, 제안된 수정 사항에 접속합니다. 먼저 오류를 수정한 후에 발행해야 합니다. 경고를 수정하여 호스팅 타일 레이어의 성능과 모양을 더욱 향상시킬 수 있지만 필수 사항은 아닙니다.

  18. 오류를 수정하고 필요에 따라 경고를 수정했으면 발행을 클릭합니다.
    비고:
    데이터는 이 시점에서 서버에 복사됩니다. 데이터 크기와 네트워크 속도 및 대역폭에 따라 발행 시간이 달라집니다.

발행이 완료되면 웹 레이어 관리를 클릭하여 포털 웹사이트를 열 수 있습니다.

ArcGIS Pro에서 타일 패키지를 만든 다음 내 기관에 업로드

맵 타일 패키지 생성 지오프로세싱 도구를 사용하여 타일 패키지를 만들고, 패키지를 내 기관에 추가하고, 타일 레이어를 발행합니다.

ArcGIS Pro 2.3 이후 버전에서는 해당 지오프로세싱 도구의 결과가 .tpk 파일이나 .tpkx 파일이 되도록 지정할 수 있습니다. 개방형 사양 형식인 새로운 .tpkx 형식에는 단순화된 파일 구조가 사용되므로 클라우드 및 공유 네트워크 위치에서 실행될 때 성능이 향상됩니다. 이 워크플로에서 두 형식 중 하나를 사용할 수 있습니다.

  1. 패키지로 만들 데이터가 포함된 프로젝트를 엽니다.
  2. 맵 타일 패키지 생성 지오프로세싱 도구를 열어 실행합니다.
  3. 타일 패키지 생성을 마쳤으면 콘텐츠를 생성하고 호스팅 타일 레이어를 발행할 권한이 있는 계정을 사용하여 기관에 로그인한 후 콘텐츠 > 내 콘텐츠를 클릭합니다.
  4. 내 컴퓨터에서를 클릭하여 타일 패키지를 추가합니다.
  5. 이 파일을 호스팅 레이어로 발행 체크 박스를 선택합니다.
  6. 제목을 입력합니다.
  7. 기관 관리자가 콘텐츠 범주를 구성한 경우 범주 할당을 클릭하고 최대 20개의 범주를 선택하여 사용자가 항목을 찾도록 지원할 수 있습니다.

    범주 필터링 체크 박스에 입력하여 범주 목록의 범위를 좁힐 수도 있습니다.

  8. 쉼표로 구분된 태그 용어를 입력합니다.

    태그는 항목을 설명하고 다른 사람이 항목을 검색할 때 도움이 되는 단어 또는 짧은 구문입니다. Federal land는 태그 하나로 간주되지만 Federal,land는 태그 두 개로 간주됩니다.

  9. 항목 추가를 클릭합니다.

타일의 압축이 풀리고 호스팅 타일 레이어가 생성됩니다. 내 콘텐츠에서 맵 타일과 타일 패키지를 볼 수 있습니다.

큰 타일 패키지 발행

대용량 데이터를 생성하고 공유하려면 이전 워크플로 대신 타일 캐시 도구모음을 사용하는 것이 좋습니다(Esri 권장 사항). 이러한 도구는 다중 코어를 활용하여 타일 생성 및 발행 성능을 개선합니다.

ArcGIS Pro에서 지오프로세싱 도구를 실행합니다.

  1. 맵 타일 패키지 생성 지오프로세싱 도구를 실행하여 한 단계로 타일 패키지를 생성하거나 지오프로세싱 도구를 다음 순서로 실행합니다.
    1. 타일 캐시 타일링 스키마 생성 도구를 실행하여 타일링 그리드 및 이미지 형식을 정의합니다.
    2. 타일 캐시 관리 도구를 실행하여 타일을 생성합니다.
    3. 타일 캐시 내보내기 도구를 실행하여 타일 패키지를 생성합니다.

    특정 범위 또는 세밀도로 캐시를 생성하려면 위에 나와 있는 세 도구를 사용하세요.

  2. 패키지 공유 도구(패키지 도구집합)를 실행하여 ArcGIS Enterprise에 타일을 업로드합니다.
  3. 타일 패키지 생성을 마쳤으면 ArcGIS Pro에서 타일 패키지를 생성할 때와 동일한 계정을 사용하여 기관에 로그인한 다음 콘텐츠 > 내 콘텐츠를 클릭합니다.
  4. 타일 패키지를 클릭하여 해당 항목 세부정보 페이지를 나타냅니다.
  5. 발행을 클릭합니다.
  6. 제목과 태그를 입력합니다.
  7. 기관 관리자가 콘텐츠 범주를 구성한 경우 범주 할당을 클릭하고 최대 20개의 범주를 선택하여 사용자가 항목을 찾도록 지원할 수 있습니다.

    범주 필터링 체크 박스에 입력하여 범주 목록의 범위를 좁힐 수도 있습니다.

  8. 발행을 클릭합니다.

타일의 압축이 풀리고 호스팅 타일 레이어가 생성됩니다. 이 레이어는 내 콘텐츠에 표시됩니다.

ArcMap에서 맵 정의 및 발행

ArcMap에서 타일 레이어를 ArcGIS Enterprise에 발행할 수 있습니다.

비고:

ArcMap의 레이어에 정의 쿼리가 적용되어 있다면 ArcGIS는 발행된 호스팅 타일 레이어에 정의 쿼리를 적용합니다. 하지만 모든 데이터는 ArcGIS Enterprise에 복사됩니다. 데이터의 일부분을 발행하려는 경우 해당 부분을 다른 피처 클래스로 내보내 발행해야 합니다.

ArcMap을 시작하기 전에 ArcGIS Desktop이 포털에 연결되어 있는지 확인하세요.

  1. ArcMap을 시작하고 발행할 맵을 엽니다.
  2. 콘텐츠를 생성하고 호스팅 타일 레이어를 발행할 권한이 있는 계정으로 기관에 로그인합니다.
    1. 파일 > 로그인을 클릭합니다.
    2. 기관에 대한 사용자 이름과 비밀번호를 입력하고 로그인을 클릭합니다.
  3. 이제 맵을 발행합니다.
  4. 파일 > 공유 > 서비스를 클릭합니다.
  5. 서비스 발행을 선택하고 다음을 클릭합니다.
    주의:

    대신 서비스를 덮어쓰기로 선택한 경우에는 기존 맵 타일 항목이 포털에서 삭제되고 같은 이름의 새 항목이 생성됩니다. 새 항목은 루트 폴더에 생성되며 새 ID가 할당됩니다. 공유를 다시 구성해야 하고, 필요한 경우 재발행하기 전에 원래 폴더로 항목을 다시 이동해야 합니다.

  6. 연결 유형의 드롭다운 목록에서 내 호스팅 서비스를 선택합니다. 그런 다음 타일 이름을 입력하고 계속을 클릭합니다.
  7. 서비스 편집기에서 원하는 등록정보를 설정합니다.

    여기에서 사용자가 타일을 사용하여 수행할 수 있는 작업을 선택하고 타일이 최종 사용자에게 공개되는 방법을 더욱 세밀하게 제어할 수 있습니다. 배포를 위해 타일을 구성하는 최상의 방법에 대한 자세한 내용은 ArcGIS Server 도움말에서 서비스 조정 및 구성을 참고하세요. 이 항목에서 참조하는 등록정보 중 일부는 ArcGIS Server에만 적용되며 호스팅 타일 레이어를 사용할 때는 적용되지 않습니다.

    팁:

    이 세션 중에 서비스 편집기 창을 닫으면 작업을 임시 저장 서비스로 저장할지 묻는 메시지가 나타납니다. 임시 저장 서비스를 사용하면 나중에 서비스 구성 작업으로 돌아올 수 있습니다. 기본 설정에 따라 임시 저장 서비스는 내 호스팅되는 맵 연결의 임시 저장 폴더에 저장됩니다. 자세한 내용은 ArcGIS Server 도움말의 임시 저장 서비스 정보를 참고하세요.

  8. 호스팅 타일 레이어와 관련된 몇 가지 등록정보를 설정해야 합니다. 이러한 등록정보는 다음 단계에 자세히 설명되어 있습니다.
  9. 서비스 편집기 창의 왼쪽 창에서 기능을 클릭한 다음 타일 매핑을 선택하여 맵을 타일 레이어로 나타냅니다. Map Viewer에 추가할 때 레이어에 대한 팝업을 구성하려는 경우 피처 접근을 선택하여 타일과 함께 피처 레이어를 발행합니다.

    서비스 편집기 창의 왼쪽 창에서 타일 매핑 하위 항목을 클릭하여 발행된 타일 레이어를 사용하여 작업할 수 있는 클라이언트와 관련된 고급 등록정보를 설정할 수 있습니다.

  10. 캐싱 항목을 클릭하여 타일 캐시에 대한 등록정보를 설정합니다.

    자세한 단계는 ArcGIS Server 도움말에서 맵 캐시 생성을 참고하세요. 일부 고급 캐시 설정은 ArcGIS Server에 직접 발행하는 경우에만 사용할 수 있습니다.

  11. 서비스 편집기 창에서 항목 설명을 클릭하고 타일 레이어에 대한 요약 및 태그를 입력합니다. 발행을 하려면 먼저 이 정보를 입력해야 합니다.

    자세한 내용은 ArcGIS Server 도움말에서 맵 서비스 등록정보 설정의 항목 설명 섹션을 참고하세요.

  12. 서비스 편집기 창에서 공유를 클릭하고 호스팅 타일 레이어를 공유할 대상을 선택합니다.

    기본 설정에 따라 호스팅 타일 레이어는 비공개이므로 소유자만 접근할 수 있습니다. 모든 사람, 기관의 구성원 또는 특정 그룹의 구성원과 공유할 수 있습니다.

  13. 서비스 편집기 창에서 분석 분석을 클릭합니다.

    분석은 맵을 검사하여 발행할 수 있는지 여부를 확인하는 작업입니다. 발행하려면 먼저 준비 창에서 오류 오류의 오류를 수정해야 합니다. 필요한 경우 경고 및 정보 메시지를 수정하여 발행된 타일의 성능과 모양을 더욱 향상시킬 수 있습니다.

  14. 필요한 경우 서비스 편집기 창에서 미리 보기 미리보기를 클릭합니다.

    이를 통해 맵에서 볼 때 타일 레이어가 어떻게 보여지는지 알 수 있습니다.

  15. 오류를 수정하고 필요에 따라 경고와 메시지를 수정했으면 발행 발행을 클릭합니다.
    비고:

    데이터는 이 시점에서 호스팅 서버에 복사됩니다. 데이터 크기와 네트워크 연결 속도 및 대역폭에 따라 발행 시간이 달라집니다. 타일이 생성될 시간을 고려할 수 있습니다.

타일 레이어가 발행된 후에는 카탈로그 창에서 내 호스팅 서비스 노드를 확장하여 해당 타일을 볼 수 있습니다.

호스팅 타일 레이어는 포털 웹사이트의 내 콘텐츠 탭에 두 개의 독립된 항목(타일 및 서비스 정의)으로 나열됩니다. 서비스 정의는 맵, 맵 데이터, 타일 발행 방법에 대한 세부정보 등이 포함된 zip 파일입니다. ArcGIS Server를 실행하는 다른 머신에 서비스 정의를 전송 및 발행할 수 있습니다.

ArcMap에서 타일 패키지를 만들고 공유한 다음 발행

ArcMap에서는 맵 문서용 타일을 생성하여 전송할 수 있는 타일 패키지 파일로 저장할 수 있습니다. ArcMap에서 타일 패키지를 생성하여 포털에 공유한 다음 호스팅 타일 레이어로 발행할 수 있습니다.

팁:

팝업을 구성하려면 호스팅 타일 레이어와 함께 피처 레이어를 발행해야 합니다.

ArcMap에서 타일 패키지를 생성하고 공유할 수 있는 두 가지 방법이 있습니다.

  • 소량의 데이터(1GB 미만)를 패키징하고 공유하려면 맵에서 직접 타일 패키지를 생성하여 공유합니다. 포털 웹사이트에서 패키지를 발행하는 경우 범례 및 텍스트 요소와 같은 맵 문서의 요소가 유지됩니다.
  • 데이터가 1GB를 초과하는 경우 지오프로세싱 도구를 사용하여 타일을 패키징 및 공유합니다. 이 방법은 타일이 타일 패키지에서 발행된 경우에만 데이터를 유지하므로 타일 생성 성능이 향상됩니다.

ArcMap 10.7에서는 워크플로의 결과가 .tpk 파일이나 .tpkx 파일이 되도록 지정할 수 있습니다. 개방형 사양 형식인 새로운 .tpkx 형식에는 단순화된 파일 구조가 사용되므로 클라우드 및 공유 네트워크 위치에서 실행될 때 성능이 향상됩니다. 다음 워크플로에서 두 형식 중 하나를 사용할 수 있습니다.

작은 타일 패키지 발행

ArcMap에서 생성하는 타일 패키지가 1GB보다 작은 경우 다음 워크플로를 사용하여 발행합니다.

  1. ArcMap에서 맵을 엽니다.
  2. 콘텐츠를 생성하고 호스팅 타일 레이어를 발행할 권한이 있는 계정으로 포털에 로그인합니다.
  3. 사용자 정의 > ArcMap 옵션 > 공유를 클릭하고 ArcGIS Runtime 도구 사용이 선택되어 있는지 확인합니다.

    이렇게 하면 다음 단계에서 사용할 메뉴 옵션이 활성화됩니다.

  4. ArcMap에서 파일 > 다른 이름으로 공유 > 타일 패키지를 클릭합니다.
  5. 아래의 하위 단계에서 모든 설정을 구성합니다. 사용자가 기타 설정을 선택할 수 있습니다.
    1. 타일 패키지 탭에서 내 ArcGIS Portal 계정에 패키지 업로드를 선택합니다.
    2. 타일 형식 탭에서 ArcGIS Online/Bing Maps/Google Maps타일링 스키마로 선택합니다.
    3. 항목 설명 탭에서 필수로 표시된 항목을 제공합니다.
    4. 공유 탭에서 일반 사용자 또는 특정 그룹과 패키지를 공유하도록 선택할 수 있습니다.
  6. 공유를 클릭합니다.

    ArcMap에서 타일 패키지를 생성하기 전에 먼저 맵을 저장하라는 메시지가 표시될 수 있습니다.

    특히 대축척을 포함한 경우, 타일 패키지가 생성되기까지 시간이 걸릴 수 있습니다.

  7. 타일 패키지 생성을 마쳤으면 ArcMap에서 타일 패키지를 생성할 때와 동일한 계정을 사용하여 포털에 로그인한 다음 콘텐츠 > 내 콘텐츠를 클릭합니다.
  8. 타일 패키지를 클릭하여 해당 항목 세부정보 페이지를 나타냅니다.
  9. 발행을 클릭합니다.
  10. 제목 및 태그를 입력하고 발행을 클릭합니다.

타일의 압축이 풀리고 호스팅 타일 레이어가 포털에 생성됩니다. 이 레이어는 내 콘텐츠에 표시됩니다.

큰 타일 패키지 발행

대용량 데이터를 생성하고 공유하려면 이전 워크플로 대신 타일 캐시 도구모음을 사용하는 것이 좋습니다(Esri 권장 사항). 이러한 도구는 다중 코어를 활용하여 타일 생성 및 발행 성능을 개선합니다.

도구를 다음에 나열된 순서대로 실행하세요.

  1. 타일 캐시 타일링 스키마 생성을 실행하여 타일링 그리드 및 이미지 형식을 정의합니다.
  2. 타일 캐시 관리를 실행하여 타일을 생성합니다.
  3. 타일 캐시 내보내기를 실행하여 타일 패키지를 생성합니다.
  4. 패키지 공유(패키지 도구모음)를 실행하여 포털에 타일을 업로드합니다.
  5. 타일 패키지 생성을 마쳤으면 ArcMap에서 타일 패키지를 생성할 때와 동일한 계정을 사용하여 포털에 로그인한 다음 콘텐츠 > 내 콘텐츠를 클릭합니다.
  6. 타일 패키지를 클릭하여 해당 항목 세부정보 페이지를 나타냅니다.
  7. 발행을 클릭합니다.
  8. 제목과 태그를 입력합니다.
  9. 기관 관리자가 콘텐츠 범주를 구성한 경우 범주 할당을 클릭하고 최대 20개의 범주를 선택하여 사용자가 항목을 찾도록 지원할 수 있습니다.

    범주 필터링 체크 박스에 입력하여 범주 목록의 범위를 좁힐 수도 있습니다.

  10. 발행을 클릭합니다.

타일의 압축이 풀리고 호스팅 타일 레이어가 포털에 생성됩니다. 이 레이어는 내 콘텐츠에 표시됩니다.

서비스 정의 파일에서 발행

타일을 발행하고 캐시를 생성하는 작업에는 많은 서버 리소스가 사용될 수 있습니다. 많은 수의 타일 레이어를 발행해야 하는 경우 맵 작성자는 ArcMap 또는 ArcGIS Pro에서 타일 레이어를 포털에 발행하는 데 필요한 데이터, 심볼 및 기타 정보가 포함된 서비스 정의(.sd) 파일을 생성할 수 있습니다. 그런 다음 스크립트를 사용하여 업무 시간 이후에 서비스 정의 파일을 포털에 업로드하고 발행할 수 있습니다. 결과 타일 레이어는 호스팅 서버에서 호스팅됩니다.

서비스 정의 파일 생성

ArcGIS Pro에서 서비스 정의 파일을 만드는 방법에 대한 지침은 서비스 정의 파일 저장을 참고하세요.

ArcMap에서 서비스 정의 파일을 생성하려면 다음 단계를 따릅니다.

  1. ArcMap을 시작하고 포털에 로그인합니다.
  2. 맵을 생성하고 저장합니다.

    맵 생성 및 발행에 대한 자세한 내용은 ArcGIS Server 도움말에서 맵 서비스 항목을 참고하세요.

  3. 이제 서비스 정의 파일을 생성합니다.
  4. 파일 > 공유 > 서비스를 클릭합니다.
  5. 서비스 정의 파일 저장을 선택하고 다음을 클릭합니다.
  6. 연결 선택을 클릭하고 드롭다운 목록에서 내 호스팅 서비스를 선택합니다.
  7. 파일 이름을 입력하고 다음을 클릭합니다.
  8. 서비스 정의 파일을 생성할 클라이언트 머신의 디렉터리를 지정하고 계속을 클릭합니다.

    서비스 편집기 창이 나타납니다.

  9. 서비스 편집기 창의 왼쪽 창에서 캐싱을 클릭합니다.
  10. 타일링 스키마를 선택합니다.
  11. 타일의 최소 및 최대 축척을 선택한 다음 캐시 크기 계산을 선택합니다.
  12. 서비스가 발행된 후 수동으로 캐시 생성을 클릭합니다.
  13. 필요한 경우 고급 설정을 클릭하여 타일 캐시에 대한 추가 캐시 설정을 지정할 수 있습니다.
  14. 서비스 편집기 창의 왼쪽 창에서 항목 설명을 클릭하고 타일 레이어에 대한 정보를 제공합니다.

    서비스 정의 파일을 생성하려면 최소한 요약과 태그를 제공해야 합니다.

  15. 분석 분석을 클릭하여 파일에 오류가 없는지 확인합니다.

    서비스 정의 파일을 준비하려면 먼저 모든 오류를 해결해야 합니다. 필요에 따라 반환된 경고 및 메시지를 수정할 수 있습니다.

  16. 오류를 수정하고 필요에 따라 경고와 메시지를 수정했으면 스테이지 단계를 클릭합니다.

서비스 정의 파일은 지정한 위치에 저장됩니다.

서비스 정의 불러오기 및 발행

작성자로부터 서비스 정의 파일을 받은 후에는 포털에 서비스 정의 파일을 수동으로 업로드하고 타일 레이어를 발행하거나, 스크립트를 예약하여 파일을 업로드하고 발행할 수 있습니다.

수동 업로드 및 발행

포털 웹사이트에 로그인하여 서비스 정의 파일을 포털에 추가하고 발행합니다.

  1. 콘텐츠를 생성하고 호스팅 타일 레이어를 발행할 권한이 있는 구성원으로 포털에 로그인한 후 콘텐츠 > 내 콘텐츠를 클릭합니다.
  2. 항목 추가를 클릭합니다.
  3. 컴퓨터에서 파일을 불러오도록 선택합니다.
  4. 찾아보기 버튼을 클릭하고 서비스 정의 파일을 선택합니다.
  5. 이 파일을 서비스로 발행을 선택합니다.
  6. 포털 관리자가 콘텐츠 범주를 구성했다면 범주 할당을 클릭하고 다른 사용자가 항목을 쉽게 찾을 수 있도록 최대 20개의 범주를 선택합니다.

    범주 필터링 체크 박스에 입력하여 범주 목록의 범위를 좁힐 수도 있습니다.

  7. 쉼표로 구분된 태그 용어를 입력합니다.

    태그는 항목을 설명하고 항목의 검색 가능성을 높여 주는 단어 또는 짧은 구입니다. Federal land는 태그 하나로 간주되지만 Federal,land는 태그 두 개로 간주됩니다.

  8. 항목 추가를 선택하여 서비스 정의 파일을 추가하고 타일 레이어를 발행합니다.

    타일 레이어가 포털의 호스팅 서버에 발행되고 서비스 정의와 타일 둘 다 내 콘텐츠에 추가됩니다.

  9. 타일 레이어가 발행된 경우 타일 생성 시작 옵션이 제공됩니다. 해당 링크를 클릭하여 타일을 생성합니다.

기본 설정에 따라 다른 사용자는 서비스 정의 파일 및 호스팅 타일 레이어에 접근할 수 없습니다. 파일 및 타일은 내 기관 또는 특정 그룹과 공유할 수 있습니다.

스크립트를 실행하여 업로드 및 발행

몇 시간 후에 서비스 정의 파일을 업로드하고 발행하려면 다음 스크립트를 자동화하여 GIS Server 머신에서 실행합니다.

  1. 다음 스크립트를 텍스트 파일에 복사한 다음 .py 확장자로 파일을 저장합니다.

    import os, sys, json, urllib, urllib2, httplib, urlparse, mimetools, mimetypes
    from cStringIO import StringIO
    
    # generates a new token from Portal
    def generate_token(baseurl, username, password):
        tokenUrl = urlparse.urljoin(baseurl, 'sharing/generateToken')
        postdata = { 'username': username, 'password': password,
                   'client': 'requestip', 'expiration': 60, 'f': 'json' }
        encoded_postdata = urllib.urlencode(postdata)
        opener = urllib2.build_opener()
        try: resp = opener.open(tokenUrl, data=encoded_postdata)
        except urllib2.HTTPError as e: raise Exception('Unable to connect to Portal, please check the url: {} {}'.format(e.code, e.reason))
        resp_json = json.loads(resp.read())
        if 'error' in resp_json: raise Exception('\n'.join(resp_json['error']['details']))
        return resp_json['token']
        sys.exit(1)
    
    # create proper multi-part POST request data
    def _encode_multipart_formdata(fields, files):
        boundary = mimetools.choose_boundary()
        buf = StringIO()
        for (key, value) in fields.iteritems():
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"' % key)
            buf.write('\r\n\r\n%s\r\n' % str(value))
        for (key, filepath, filename) in files:
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename))
            buf.write('Content-Type: %s\r\n' % (mimetypes.guess_type(filename)[0] or 'application/octet-stream'))
            f = open(filepath, "rb")
            try:
                buf.write('\r\n' + f.read() + '\r\n')
            finally:
                f.close()
        buf.write('--' + boundary + '--\r\n\r\n')
        buf = buf.getvalue()
        return boundary, buf
    
    # send multi-part POST request
    def _postmultipart(host, selector, fields, files, ssl):
        boundary, body = _encode_multipart_formdata(fields, files)
        headers = { 'Content-Type': 'multipart/form-data; boundary={0}'.format(boundary) }
        if ssl: h = httplib.HTTPSConnection(host)
        else: h = httplib.HTTPConnection(host)
        
        h.request('POST', selector, body, headers)
        resp = h.getresponse()
    
        return resp.read()
    
    # first upload the SD file and create an item in Portal
    def addSDItem(baseurl, user, token, title, file, folder = ''):
        addUrl = 'sharing/rest/content/users/{}/{}addItem'
        if folder != '': addUrl = addUrl.format(user, folder + '/')
        else: addUrl = addUrl.format(user, '')
        
        url = urlparse.urljoin(baseurl, addUrl)
    
        files = [('file', file, os.path.split(file)[1])]
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        ssl = url.startswith('https://')
        
        parsed_url = urlparse.urlparse(url)
        
        print('Uploading {} to {}..'.format(file, baseurl))
        resp = _postmultipart(parsed_url.netloc, str(parsed_url.path), fields, files, ssl)
        resp_json = json.loads(resp)
    
        if 'error' in resp_json:
          raise Exception('Unable to upload file {}: {}'.format(file, resp_json['error']['message']))
        
        return resp_json['id']
        
    # second publish the uploaded SD item as a new tiled service
    def publishTiles(baseurl, user, token, itemid):
        publishUrl = urlparse.urljoin(baseurl, 'sharing/rest/content/users/{}/publish'.format(user))
        query_dict= { 'f' : 'json', 'token': token, 'itemid': itemid, 'buildInitialCache' : True,
                      'publishParameters' : { 'name' : 'cities' }, 'fileType': 'serviceDefinition' }
                      
        query_string = urllib.urlencode(query_dict)
        print('Publishing tile service from item..')
        response = urllib.urlopen(publishUrl, query_string)
            
        resp_json = json.loads(response.read())
        
        if 'error' in resp_json: raise Exception('Unable to publish item: {}'.format(resp_json['error']['message']))
    
    # read input from command line when run as a standalone script
    if __name__ == '__main__':
        try: 
          url = sys.argv[1]
          user = sys.argv[2]
          password = sys.argv[3]
          f = sys.argv[4]
          title = sys.argv[5]
          if not url.endswith('/'): url += '/' # make sure the url ends with /
        except: # if too few parameters are passed on command line, show usage help
          print('Usage: ')
          print('       publishServiceItem.py [portalUrl] [userName] [password] [sdFilePath] [titleOfServiceItem]')
          print('')
          print('portalUrl           The secure url to the portal, e.g. https://portalmachine.example.com/arcgis/')
          print('userName            The username of a user to publish the service.')
          print('                    This user must have the required publishing privileges.')
          print('password            The password of the user')
          print('sdFilePath          Path to the .sd file containing the service definition')
          print('                    E.g. c:\\temp\cachedService.sd')
          print('titleOfServiceItem  The title to assign to the published item in the portal.')
          sys.exit(1)  
    
        token = generate_token(url, user, password)
    
        id = addSDItem(url, user, token, title, f)
        publishTiles(url, user, token, id)
        print('Publishing complete. Tile generation has been started and may take a while to finish.')

  2. Python 스크립트 실행을 예약하는 셸 스크립트 또는 배치 파일을 만듭니다.
  3. 파일에서는 Python 스크립트를 호출하고 사이트에 대한 옵션을 제공합니다.

    예를 들어 publishServiceItem.py 스크립트를 실행하려면 포털 URL, 연결할 사용자의 이름, 사용자의 비밀번호, 서비스 정의 파일의 경로, 생성할 서비스의 제목을 입력합니다. 다음 예제에서 포털 URL은 https://portal.domain.com/arcgis/, 사용자의 이름과 비밀번호는 pub1 및 pub.1, 서비스 정의 파일의 경로는 C:\maps\SDs\mymap.sd, 서비스 이름은 studytiles입니다.

    publishServiceItem.py https://portal.domain.com/arcgis/ pub1 pub.1 C:\maps\SDs\mymap.sd studytiles

  4. 포털 사용량이 가장 낮을 때 스크립트가 실행되도록 예약합니다.

    스크립트 예약에 대한 자세한 내용은 ArcGIS 지오프로세싱 도움말의 Python 스크립트를 예정된 시간에 실행되도록 예약을 참고하세요.