Skip To Content

Publikacja hostowanych warstw kafli

Kafle publikowane i hostowane w portalu zapewniają szybką wizualizację dużych zestawów danych za pomocą zestawu wcześniej przygotowanych rastrów map lub kafli. Hostowane kafle zapewniają odniesienie geograficzne dla warstw operacyjnych. Na przykład, użytkownik może dodać kafle ulic swojej okolicy w celu utworzenia wizualnego odwołania do znaków drogowych na warstwie obiektów.

Warstwy kafli, które będą hostowane w portalu, można publikować na następujące sposoby:

Można automatycznie utworzyć pamięć podręczną podczas publikowania kafli lub utworzyć pamięć podręczną ręcznie po zakończeniu publikowania. Dodatkowe informacje znajdują się w temacie Najważniejsze wskazówki dotyczące pamięci podręcznych kafli.

Aby opublikować mapę lub plik definicji usługi jako hostowaną warstwę kafli, wymagane są uprawnienia do tworzenia zasobów i publikowania hostowanych kafli.

Definiowanie i publikowanie mapy w aplikacji ArcMap

Z poziomu aplikacji ArcMap można opublikować warstwę kafli, która będzie hostowana w portalu.

Upewnij się, że aplikacja ArcGIS Desktop jest podłączona do Twojego portalu, zanim uruchomisz aplikację ArcMap.

  1. Uruchom aplikację ArcMap i otwórz mapę, którą chcesz opublikować.
  2. Zaloguj się do własnego portalu za pomocą konta instytucji z uprawnieniami do tworzenia zasobów i publikowania hostowanych warstw kafli.
    1. Kliknij Plik > Zaloguj.
    2. Wprowadź nazwę użytkownika i hasło używane w portalu, a następnie kliknij przycisk Zaloguj się.
  3. Następnie opublikuj mapę.
  4. Kliknij kolejno elementy Plik > Udostępnij jako > Usługa.
  5. Wybierz opcję Publikuj usługę i kliknij przycisk Dalej.
    Uwaga:

    Jeżeli użytkownik zdecyduje się zastąpić usługę, istniejący element kafla mapy zostanie usunięty z portalu i utworzony będzie nowy o takiej samej nazwie. W folderze głównym tworzony jest nowy element, któremu zostaje przypisany nowy identyfikator. Należy ponownie skonfigurować udostępnianie oraz (w razie potrzeby) przenieść element z powrotem do folderu, w którym znajdował się przed ponownym opublikowaniem.

  6. Na liście rozwijanej typów połączenia, wybierz Moje hostowane usługi. Wpisz nazwę kafli i kliknij przycisk Kontynuuj.
  7. Skonfiguruj wymagane właściwości w oknie Edytora usługi. Użytkownik może zdecydować, jakie operacje są dopuszczalne w przypadku kafli oraz szczegółowo dostosować ich prezentację przez serwer.

    Informacje na temat najlepszej konfiguracji kafli na potrzeby wdrożenia zawiera sekcja Optymalizacja i konfigurowanie usług w pomocy dla serwera ArcGIS Server. Niektóre z właściwości wspomniane w tym temacie odnoszą się wyłącznie do produktu ArcGIS Server i nie mają zastosowania w pracy z hostowanymi warstwami kafli.

    Wskazówka:

    Jeżeli okno Edytor usługi zostanie zamknięte w trakcie sesji, wyświetlony zostanie monit o zapisanie pracy jako projektu usługi. Projekty usług umożliwiają powrót do konfiguracji usług w późniejszym czasie. Domyślnie, wersje robocze usługi są zapisywane w folderze Projekty połączenia z Moimi hostowanymi usługami. Szczegółowe informacje znajdują się w temacie O wersjach roboczych usług w pomocy dla serwera ArcGIS Server.

  8. Należy skonfigurować kilka właściwości specjalnych w przypadku hostowanych warstw kafli. Zostały one szczegółowo opisane w dalszej części.
  9. W lewej części panelu Edytor usługi, kliknij kartę Funkcje, następnie zaznacz opcję Mapa kafelkowa, aby ustawić mapę jako warstwę kafli. Zaznacz opcję Dostęp do obiektów, aby opublikować warstwę obiektów razem z kaflami, jeżeli chcesz dla warstwy skonfigurować okna podręczne po dodaniu jej do przeglądarki map.

    Można kliknąć element podrzędny Tworzenie map kafelkowych dostępny w lewej części panelu Edytor usługi, aby ustawić zaawansowane właściwości dotyczące operacji na opublikowanej warstwie kafli możliwych do wykonania przez użytkowników.

  10. Kliknij element Tworzenie pamięci podręcznej, aby skonfigurować właściwości dla pamięci podręcznej kafli. Więcej szczegółowych instrukcji zawiera sekcja Tworzenie pamięci podręcznej mapy w pomocy dla serwera ArcGIS Server. Należy pamiętać o tym, że niektóre zaawansowane ustawienia pamięci podręcznej są dostępne tylko podczas bezpośredniego publikowania na serwerze ArcGIS Server.
  11. W lewym panelu okna Edytor usługi kliknij opcję Opis elementu i wprowadź podsumowanie oraz znaczniki tej warstwy kafli. Konieczne będzie wprowadzenie tych informacji przed opublikowaniem. Szczegółowe informacje, znajdują się w sekcji poświęconej szczegółom elementu w temacie Konfiguracja właściwości usług mapowych w systemie pomocy dla serwera ArcGIS Server.
  12. Kliknij znajdującą się w lewym panelu okna Edytor usługi opcję Udostępnianie, a następnie wybierz, komu zostanie udostępniona hostowana warstwa kafli. Domyślnie Twoja hostowana warstwa kafli jest udostępniana tylko na stronie Moje zasoby, co oznacza, że jest dostępna wyłącznie dla Ciebie. Twoja warstwa kafli będzie zawsze widoczna na stronie Moje zasoby, ale możesz także udostępnić ją wszystkim, członkom instytucji lub tylko członkom określonych grup.
  13. W oknie Edytor usługi, kliknij przycisk Analizuj Analizuj.

    Nastąpi sprawdzenie mapy, czy może zostać opublikowana. Należy usunąć Błędy Błąd w oknie Przygotowanie, aby możliwe było dokonanie publikacji. Ponadto można usunąć ostrzeżenia oraz komunikaty, aby podnieść wydajność i zoptymalizować wygląd swoich opublikowanych kafli. Więcej informacji na temat rozwiązywania tych problemów zawiera temat Analizowanie zasobów GIS w pomocy dla serwera ArcGIS Server.

  14. Możesz również kliknąć opcję Podgląd Podgląd znajdującą się w oknie Edytor usługi. Tutaj można sprawdzić symulację wyglądu warstwy kafli w sieci.
  15. Po usunięciu błędów oraz opcjonalnie ostrzeżeń i komunikatów kliknij przycisk Publikuj Publikuj.
    Notatka:

    Dane użytkownika zostaną skopiowane na serwer. Rozmiar danych i prędkość połączenia sieciowego mają wpływ na czas publikacji. Należy także uwzględnić czas potrzebny na wygenerowanie kafli.

Gdy warstwa kafli zostanie opublikowana w portalu, będzie widoczna po rozwinięciu węzła Moje hostowane usługi w oknie Katalog.

Hostowana warstwa kafli jest przedstawiana jako dwa niezależne elementy na stronie Moje zasoby w witrynie internetowej portalu: Kafle i Definicja usługi. Definicja usługi to skompresowany plik zawierający mapę, dane i szczegóły dotyczące sposobu publikacji kafli. Definicje usług można przenieść i opublikować na dowolnym komputerze obsługującym oprogramowanie ArcGIS Server 10.1 lub wersję nowszą.

Definiowanie i publikowanie mapy w aplikacji ArcGIS Pro

Z poziomu aplikacji ArcGIS Pro możesz publikować warstwę obiektów, która będzie hostowana w portalu.

Należy pamiętać, że przeglądarki internetowe nie wyświetlają niektórych bardziej złożonych symboli kartograficznych, które mogły zostać zastosowane przez użytkownika podczas tworzenia mapy. Większość rodzajów symboli jest dostępna, jednak w niektórych przypadkach symbole mogą zostać uproszczone po publikacji. Zapoznaj się z tematem Tworzenie usług obiektowych w systemie pomocy oprogramowania ArcGIS Server, aby uzyskać więcej informacji o obsługiwanych symbolach, a następnie przed publikacją wprowadź niezbędne zmiany w symbolach mapy.

  1. Uruchom aplikację ArcGIS Pro i otwórz projekt zawierający mapę, którą chcesz opublikować.
  2. Sprawdź, czy połączenie z portalem jest aktywne w projekcie i czy jesteś użytkownikiem zalogowanym do instytucji przy użyciu konta z uprawnieniami do tworzenia zawartości i publikowania hostowanych warstw kafli.
  3. Aby opublikować warstwę kafli, wykonaj jedną z poniższych operacji:
    • Wybierz warstwy w panelu Zasoby. Kliknij prawym przyciskiem myszy wybrany zestaw, a następnie kliknij opcję Udostępnij jako warstwę internetową.
    • Aby opublikować wszystkie warstwy mapy, kliknij przycisk Warstwa internetowa w grupie Udostępnij jako karty Udostępnij i kliknij przycisk Udostępnij warstwę internetową.

    Wskazówka:

    Jeśli opcja menu Udostępnij jako warstwę internetową nie jest aktywna, przyczyny mogą być następujące:

    • Konto użyte do logowania nie umożliwia publikowania hostowanych warstw.
    • W przypadku portalu nie skonfigurowano serwera hostującego wymaganego do hostowania warstw internetowych.
    • Użytkownik chce opublikować warstwę wielopłatową, a ta funkcja nie jest obsługiwana.

  4. Wpisz nazwę warstwy kafli. Domyślnie warstwy są zapisywane na stronie Moje zasoby. Można je zapisać w folderze znajdującym się w obszarze Moje zasoby, wpisując nazwę folderu lub przechodząc do istniejącego folderu.
  5. Wybierz opcję Kopiuj wszystkie dane.
  6. Wybierz opcję Kafel jako wartość opcji Typ warstwy.

    Spowoduje to automatyczne usunięcie zaznaczeń innych opcji Typ warstwy, ponieważ podczas kopiowania danych może być zaznaczona tylko jedna z nich.

  7. Wpisz podsumowanie i znaczniki warstwy kafli.
  8. Skonfiguruj sposób udostępnienia warstwy kafli. Wszystkie opublikowane przez Ciebie warstwy są automatycznie udostępniane w Twojej osobistej przestrzeni roboczej w instytucji (Moje zasoby). Inni użytkownicy nie mogą korzystać z zasobów należących do bieżącego użytkownika ani ich wyświetlać, dopóki nie zostaną one udostępnione im za pomocą jednej z poniższych opcji:
    • Nazwa portalu — po wybraniu tej opcji warstwa zostaje udostępniona wszystkim uwierzytelnionym użytkownikom w portalu.
    • Każdy — po zaznaczeniu tej opcji warstwa będzie dostępna dla wszystkich osób uzyskujących dostęp do portalu.
    • Grupy — dzięki tej opcji można udostępnić warstwę członkom grup, do których należy bieżący użytkownik.
  9. Kliknij opcję Konfiguracja i przycisk Konfiguruj właściwości warstwy internetowej, aby zdefiniować ustawienia pamięci podręcznej.
  10. Wybierz Schemat kafli.
  11. Aby określić odpowiednią wartość minimalną i maksymalną skali dla warstwy kafli, zmień rozmiar suwaka Poziomy szczegółowości i przesuń go.

    Szacunkowy rozmiar wynikowej pamięci podręcznej zmienia się zależnie od wartości minimalnej i maksymalnej skali.

  12. Wybierz miejsce i czas budowania pamięci podręcznej kafli.
    • Wybierz opcję Utwórz pamięć podręczną automatycznie na serwerze, jeśli kafle mają być budowane na serwerze hostującym portalu podczas publikowania warstwy.
    • Jeśli pamięć podręczna ma zostać zbudowana i zapisana na serwerze hostującym portalu, ale budowanie chcesz wykonać samodzielnie po opublikowaniu, wybierz opcję Utwórz pamięć podręczną ręcznie na serwerze, otwórz warstwę kafli w witrynie portalu po opublikowaniu warstwy, a następnie ręcznie utwórz pamięć podręczną.
    • Wybierz opcję Utwórz pamięć podręczną lokalnie i określ lokalizację na urządzeniu z aplikacją ArcGIS Pro, w której zostanie zapisany tymczasowy pakiet kafli, jeśli pamięć podręczną chcesz zbudować i umieścić w pakiecie na urządzeniu z aplikacją ArcGIS Pro. Pakiet kafli zostanie automatycznie przesłany do serwera hostującego portalu w celu rozpakowania, a pamięć podręczna zostanie tam zapisana.
  13. Aby zezwolić innym osobom na pobieranie kafli mapy do użytku w trybie offline, zaznacz opcję Zezwalaj klientom na eksport pamięci podręcznej kafli.
  14. W przypadku zaznaczenia opcji Zezwalaj klientom na eksport pamięci podręcznej kafli użyj pola Ogranicz eksport do, aby określić maksymalną liczbę kafli, których klienci mogą jednocześnie używać w trybie offline.
  15. Aby upewnić się, czy warstwa kafli będzie zawierać odpowiednie warstwy danych, kliknij kartę Zasoby.
  16. Aby sprawdzić, czy nie wystąpiły problemy lub błędy, kliknij przycisk Analizuj.

    Jeżeli wykryte zostaną jakiekolwiek błędy, zostaną one wyświetlone w formie listy w karcie Komunikaty. Kliknij prawym przyciskiem myszy każdy z komunikatów, aby uzyskać więcej informacji, zapoznać się z treścią pomocy dotyczącej błędu lub ostrzeżenia oraz uzyskać dostęp do sugerowanych rozwiązań problemu. Opublikowanie elementu będzie możliwe dopiero po usunięciu błędów. Ponadto można usunąć ostrzeżenia, aby zwiększyć wydajność i zoptymalizować wygląd danej hostowanej warstwy kafli.

  17. Po usunięciu wyświetlonych błędów i ostrzeżeń kliknij przycisk Publikuj.
    Notatka:
    Dane użytkownika zostaną skopiowane na serwer. Rozmiar danych i przepustowość połączenia internetowego mają wpływ na czas publikacji.

Po zakończeniu publikacji można kliknąć pozycję Zarządzaj warstwą internetową, aby otworzyć witrynę internetową portalu.

Utwórz i udostępnij pakiet kafli w aplikacji ArcMap i opublikuj go

Aplikacja ArcMap umożliwia tworzenie kafli przeznaczonych dla dokumentu mapy i przechowywanie ich w pliku pakietu kafli .tpk, który można łatwo przenosić. Pakiet kafli można utworzyć w aplikacji ArcMap, udostępnić go w portalu, a następnie opublikować jako hostowaną warstwę kafli.

Poniżej opisano dwie różne procedury organizacji prac. Pierwszą z nich można zastosować w przypadku pracy z pakietami kafli średniej wielkości. Podczas publikacji kafli z pakietów kafli umożliwia ona zachowanie elementów dokumentu mapy, takich jak legenda i elementy tekstowe. Druga procedura organizacji prac jest zalecana podczas publikowania dużych pakietów kafli. Jednak w sytuacji, gdy kafle są publikowane z pakietu kafli, umożliwia ona zachowanie wyłącznie danych.

Aby opublikować pakiet kafli od małej do średniej wielkości, postępuj zgodnie z poniższymi wskazówkami.

  1. Otwórz mapę w aplikacji ArcMap.
  2. Zaloguj się do własnego portalu za pomocą konta instytucji z uprawnieniami do tworzenia zasobów i publikowania hostowanych warstw kafli.
  3. Kliknij kolejno elementy Dostosuj > Opcje aplikacji ArcMap > Udostępnianie i upewnij się, że zaznaczona została opcja Włącz narzędzia ArcGIS Runtime.

    Spowoduje to włączenie opcji menu niezbędnej w kolejnym etapie.

  4. W aplikacji ArcMap, kliknij opcję Plik > Udostępnij jako > Pakiet kafli.
  5. Skonfiguruj wszystkie ustawienia opisane poniżej. Można również ustawić pozostałe opcje według uznania.
    1. W karcie Pakiet kafli zaznacz opcję Prześlij pakiet na moje konto w usłudze ArcGIS Portal.
    2. W karcie Format kafli zaznacz opcję ArcGIS Online / Bing Maps / Google Maps jako Schemat kafli.
    3. W karcie Opis elementu wprowadź elementy oznaczone jako wymagane.
    4. Karta Udostępnianie pozwala wybrać, czy pakiet ma być udostępniany publicznie, czy tylko określonym grupom.
  6. Kliknij polecenie Udostępnij.

    Może zostać wyświetlony monit informujący o konieczności zapisania mapy przez utworzeniem pakietu kafli.

    Wygenerowanie pakietu kafli może potrwać dłuższą chwilę, szczególnie jeśli użyto dużych skal.

  7. Gdy pakiet kafli jest gotowy, zaloguj się do portalu jako ten sam użytkownik, którego użyto do tworzenia pakietu kafli w aplikacji ArcMap, a następnie kliknij przycisk Moje zasoby.
  8. Kliknij pakiet kafli, aby wyświetlić stronę szczegółów elementu.
  9. Kliknij element Publikuj.
  10. Wprowadź tytuł i znaczniki, a następnie kliknij przycisk Publikuj.

Kafle wektorowe zostaną rozpakowane, a w portalu zostanie utworzona hostowana warstwa kafli. Kafle mapy powinny być widoczne na stronie Moje zasoby.

Jeśli budowane i udostępniane są duże pakiety kafli, firma Esri zaleca skorzystanie z zestawu narzędzi do tworzenia Kafli w pamięci podręcznej zamiast postępowania według powyższej procedury. Zaletą tych narzędzi jest używanie wielu rdzeni przetwarzających procesora.

Uruchom te narzędzia w następującej kolejności.

  1. Uruchom opcję Generuj schemat kafli pamięci podręcznej kafli w celu zdefiniowania siatki kafli i formatu rastra.
  2. Uruchom opcję Zarządzaj pamięcią podręczną kafli w celu utworzenia kafli.
  3. Uruchom opcję Eksportuj pamięć podręczną kafli w celu utworzenia pakietu kafli.
  4. Uruchom opcję Udostępnij pakiet (w zestawie narzędzi Pakiet) w celu przesłania kafli do portalu.

Należy zauważyć, że w celu konfiguracji okien podręcznych wymagane jest podanie warstwy obiektów dla hostowanej warstwy kafli.

Tworzenie pakietu kafli w aplikacji ArcGIS Pro i przesyłanie go do instytucji

Użyj narzędzia do geoprzetwarzania Create Map Tile Package, aby utworzyć pakiet kafli, dodać pakiet do instytucji oraz opublikować warstwę kafli.

  1. Otwórz projekt zawierający dane, które zostaną dodane do pakietu.
  2. Otwórz i uruchom narzędzie do geoprzetwarzania Create Map Tile Package.
  3. Gdy pakiet kafli jest gotowy, zaloguj się do portalu przy użyciu konta instytucji z uprawnieniami do tworzenia zasobów i publikowania hostowanych warstw kafli, a następnie kliknij przycisk Moje zasoby.
  4. Dodawanie pakietu kafli Z mojego komputera.
  5. Zaznacz pole wyboru znajdujące się obok opcji Publikuj ten plik jako warstwę hostowaną.
  6. Wprowadź tytuł i znaczniki, a następnie kliknij przycisk Dodaj element.

Kafle wektorowe zostaną rozpakowane, a w portalu zostanie utworzona hostowana warstwa kafli. Kafle mapy i pakiet kafli powinny być widoczne na stronie Moje zasoby.

Publikowanie z poziomu hostowanej warstwy obiektów

Hostowaną warstwę kafli można opublikować w portalu przy użyciu własnej istniejącej hostowanej warstwy obiektów, jeśli serwer hostujący portalu używa relacyjnego magazynu danych utworzonego w aplikacji ArcGIS Data Store. Jest to użyteczna procedura wykonywania zadań służąca do wizualizacji dużych zestawów danych.

Notatka:

  • Zmiany w atrybutach przestrzennych dokonane w hostowanej warstwie obiektów nie są automatycznie uwzględniane w hostowanej warstwie kafli. Należy ponownie opublikować hostowaną warstwę kafli przy użyciu zaktualizowanej hostowanej warstwy obiektów.
  • W hostowanej warstwie obiektów istnieją ograniczenia dostosowywania stylu, które mogą uniemożliwić opublikowanie hostowanej warstwy kafli.
  • Nie można opublikować hostowanej warstwy kafli za pomocą hostowanej warstwy obiektów, która jest wielopłatowa lub stanowi chmurę punktów.

Aby opublikować hostowana warstwę kafli za pomocą hostowanej warstwy obiektów, postępuj zgodnie z poniżej opisanymi wskazówkami.

  1. Zaloguj się za pomocą konta z uprawnieniami do publikacji hostowanej warstwy kafli, a następnie kliknij pozycję Moje zasoby.
  2. Aby przeprowadzić publikację, wykonaj jedną z następujących operacji:
    • Kliknij hostowaną warstwę obiektów, która zostanie opublikowana w postaci kafli i kliknij przycisk Publikuj.
    • Kliknij kolejno przyciski Utwórz > Warstwa kafli i wybierz pozycję Warstwa obiektów, aby opublikować kafle.
  3. Wpisz tytuł, znaczniki i podsumowanie, a następnie wybierz folder hostowanej warstwy kafli.
  4. Opcjonalnie zmień zasięgi wyświetlania warstwy, przeciągając punkty końcowe zakresu widoczności.
    Uwaga:

    Usługa Portal for ArcGIS udostępnia sugerowany zakres skali, ale można go zmodyfikować. Należy jednak pamiętać, że uwzględnienie dużych skal może spowodować znaczne zwiększenie wykorzystania zasobów na serwerze. Nie należy tworzyć kafli o precyzji większej niż precyzja danych.

  5. Kliknij przycisk OK.

    Tworzona jest hostowana warstwa kafli i wyświetlana jest jej strona elementu.

Publikowanie z poziomu pliku definicji usługi

Publikacja kafli i tworzenie pamięci podręcznej mogą zużywać dużą ilość zasobów serwera. Jeżeli konieczna jest publikacja dużej liczby warstw kafli, autorzy map mogą utworzyć pliki definicji usługi (.sd) w aplikacji ArcMap zawierające wszystkie informacje wymagane do opublikowania warstwy kafli w portalu. Następnie można użyć skryptu w celu przesłania plików definicji usługi i opublikowania ich w portalu w dogodnym czasie. Warstwy kafli będące wynikiem tej operacji zostaną umieszczone na serwerze hostującym portalu.

Tworzenie pliku definicji usługi

Aby utworzyć plik definicji usługi, który będzie zawierał dane i symbolizację wymagane w przypadku warstwy kafli, która ma zostać umieszczona w portalu, osoba tworząca mapę powinna postępować według poniższych instrukcji.

  1. Uruchom aplikację ArcMap i zaloguj się do portalu.
  2. Utwórz i zapisz mapę.

    Informacje o tworzeniu i publikowaniu mapy zawierają tematy dotyczące usługi mapowej w pomocy dla serwera ArcGIS Server.

  3. Teraz utwórz plik definicji usługi.
  4. Kliknij kolejno elementy Plik > Udostępnij jako > Usługa.
  5. Wybierz opcję Zapisz plik definicji usługi i kliknij przycisk Dalej.
  6. Kliknij element Wybierz połączenie i z listy rozwijanej wybierz opcję Moje hostowane usługi.
  7. Wpisz nazwę pliku i kliknij przycisk Dalej.
  8. Podaj katalog na komputerze klienckim, w którym utworzony zostanie plik definicji usługi i kliknij przycisk Kontynuuj.

    Wyświetlony zostanie Edytor usługi.

  9. W panelu po lewej stronie okna Edytor usługi kliknij element Tworzenie pamięci podręcznej.
  10. Wybierz Schemat kafli.
  11. Wybierz minimalną i maksymalną skalę dla kafli i kliknij przycisk Oblicz rozmiar pamięci podręcznej.
  12. Kliknij pozycję Utwórz pamięć podręczną ręcznie po opublikowaniu usługi.
  13. Można również kliknąć opcję Ustawienia zaawansowane i skonfigurować dodatkowe ustawienia pamięci podręcznej kafli.
  14. W lewym panelu okna Edytor usługi kliknij opcję Opis elementu i wprowadź informacje dotyczące warstwy kafli.

    Przed utworzeniem pliku definicji usługi należy wprowadzić przynajmniej podsumowanie i znaczniki.

  15. Aby upewnić się, czy nie ma błędów, kliknij przycisk AnalizujAnalizuj.

    Przed przygotowaniem pliku definicji usługi należy usunąć wszystkie błędy. Można również wprowadzić poprawki związane ze zwróconymi ostrzeżeniami oraz komunikatami.

  16. Po usunięciu błędów oraz opcjonalnie ostrzeżeń i komunikatów kliknij przycisk Przygotuj Etap.

Plik definicji usługi zostanie zapisany we wskazanej lokalizacji.

Wczytanie definicji usługi i publikacja

Po uzyskaniu pliku definicji usługi możesz przesłać go ręcznie na stronę Moje zasoby w portalu oraz opublikować warstwę kafli lub skonfigurować skrypt przeprowadzający operację przesyłania i publikacji pliku.

Ręczne przesyłanie i publikowanie

Zaloguj się w witrynie internetowej portalu, aby dodać plik definicji usługi i opublikować ten plik.

  1. Zaloguj się do portalu jako członek z uprawnieniami do tworzenia zasobów i publikacji hostowanych warstw kafli, a następnie otwórz stronę Moje zasoby.
  2. Kliknij przycisk Dodaj element.
  3. Wybierz plik do wczytania znajdujący się na komputerze.
  4. Kliknij przycisk Przeglądaj, a następnie wybierz plik definicji usługi.
  5. Zaznacz pole wyboru opcji Opublikuj plik jako usługę.
  6. Wpisz znaczniki, rozdzielając je przecinkami.

    Znaczniki to wyrazy lub krótkie frazy opisujące dany element i ułatwiające jego odszukiwanie. Obszar federalny traktowany jest jako pojedynczy znacznik, natomiast Obszar,federalny interpretowany jest jako dwa znaczniki.

  7. Kliknij przycisk Dodaj element, aby dodać plik definicji usługi i opublikować warstwę kafli.

    Warstwa kafli zostaje opublikowana na serwerze hostującym portal, a plik definicji usługi i kafle zostają dodane do folderu Moje zasoby.

  8. Po opublikowaniu warstwy kafli udostępniona zostanie opcja Rozpocznij tworzenie kafli. Kliknij to łącze, aby utworzyć kafle.

Dostęp do pliku definicji usługi i hostowanej warstwy kafli jest domyślnie przypisany tylko do bieżącego użytkownika. Plik i kafle możesz udostępnić wszystkim osobom w instytucji lub wybranym grupom.

Uruchamianie skryptu w celu przesłania i publikacji pliku

Aby przesłać i opublikować plik definicji usługi po godzinach pracy, skonfiguruj automatyczne uruchomienie następującego skryptu na komputerze z zainstalowanym oprogramowaniem GIS Server:

  1. Skopiuj poniższy skrypt do pliku tekstowego i zapisz ten plik z rozszerzeniem .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. Utwórz plik wsadowy bądź skrypt powłoki, który posłuży do zaplanowanego uruchomienia skryptu w języku Python.
  3. Wywołaj skrypt w języku Python w utworzonym pliku i podaj opcje odpowiednie dla witryny.

    Na przykład, aby uruchomić skrypt publishServiceItem.py, wpisz adres URL portalu, nazwę użytkownika, z którego kontem nawiązane zostanie połączenie, hasło danego użytkownika, ścieżkę do pliku definicji usługi oraz nazwę usługi, która zostanie utworzona. W zaprezentowanym przykładzie adres URL portalu to https://portal.domain.com/arcgis/, nazwami użytkownika i hasłem są odpowiednio pub1 oraz pub.1, ścieżka do pliku definicji usługi to C:\maps\SDs\mymap.sd, a nazwą usługi jest studytiles.

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

    Wskazówka:

    Można także skorzystać z następującego skryptu uproszczonego, który umożliwi przesłanie pliku definicji usługi do portalu, publikację warstw kafli oraz budowę pamięci podręcznej. Jednak w celu uruchomienia skryptu wymagana jest instalacja dodatkowych pakietów Python — PortalPy oraz Python Requests. Pakiet PortalPy jest instalowany razem z witryną Portal for ArcGIS. Więcej informacji na temat instalacji tego modułu i korzystania z niego można znaleźć w temacie Obsługa skryptów zadań administracyjnych za pomocą modułu PortalPy dostępnym w systemie pomocy Portal for ArcGIS.

    import portalpy, requests, urlparse, sys, os
    
    # 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' : (os.path.split(file)[1], open(file, 'rb')) }
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        print('Uploading {} to {}..'.format(file, baseurl))
        
        # send POST with upload request
        # verify=False turns off SSL cert validation, turn on for production environments with CA-signed certs
        resp = requests.post(url, data=fields, files=files, verify=False)
        resp_json = resp.json()
    
        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' }
        
        print('Publishing tile service from item..')
        
        # send POST with publish request
        # verify=False turns off SSL cert validation, turn on for production environments with CA-signed certs
        response = requests.post(publishUrl, data=query_dict, verify=False) 
            
        resp_json = response.json()
        
        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) 
    
        portal = portalpy.Portal(url, user, password)
        token = portal.generate_token(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.')

  4. Zaplanuj uruchomienie skryptu w momencie, gdy liczba użytkowników portalu jest jak najmniejsza.

    Więcej informacji na temat wyznaczania czasu uruchomienia skryptu można znaleźć w temacie Planowanie uruchomienia skryptu w języku Python w określonym czasie dostępnym w pomocy dotyczącej geoprzetwarzania w systemie ArcGIS.