Pytania typu geopoint (punkt geograficzny) umożliwiają pobranie w ankiecie określonej lokalizacji. Choć w odpowiedziach na ankietę utworzoną w aplikacji Survey123 zawsze podejmowana jest próba pobrania lokalizacji urządzenia, nawet jeśli w ankiecie nie zawarto pytania typu geopoint (punkt geograficzny), to umieszczenie w formularzu widocznego pytania tego typu zapewnia uzyskanie lepszych wyników dotyczących lokalizacji.
W przypadku korzystania z punktów geograficznych należy wziąć pod uwagę następujące kwestie:
- Do ankiety można dodać wiele pytań typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) lub geoshape (kształt geograficzny), jednak tylko jednego z nich można użyć jako geometrii rekordu ankiety. Można użyć wielu pytań typu map (mapa), jeśli wszystkie poza jednym mają parametr bind::esri:fieldType ustawiony na wartość null.
- Każde powtórzenie w ankiecie również może mieć więcej niż jedno pytanie typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) lub geoshape (kształt geograficzny), jednak tylko jednego z nich można użyć jako geometrii rekordu powtórzenia. Wiele pytań typu map (mapa) można użyć z tą samą metodą opisaną powyżej.
- Domyślnie aplikacja Survey123 wyświetla wartości długości i szerokości geograficznej w układzie WGS84, w formacie stopnie/minuty/sekundy. Aby zmienić ten sposób wyświetlania dla ankiety, należy otworzyć kartę Mapa i wybrać inną wartość opcji Format współrzędnych.
- Domyślnie w pytaniu typu geopoint (punkt geograficzny) jest używana mapa bazowa online. Jeśli ankieta będzie używana w trybie offline, zapoznaj się z sekcją Korzystanie z map bazowych w trybie offline.
- Lokalizacje punktów z pierwszego pytania typu geopoint (punkt geograficzny) w powtórzeniu mogą zostać wyświetlone na dowolnej mapie w ankiecie. Więcej informacji zawiera sekcja Nakładanie punktów na mapie.
- Jeśli nie uwzględnisz w ankiecie żadnego pytania typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) ani geoshape (kształt geograficzny), główna warstwa obiektowa ankiety będzie mieć geometrię typu esriGeometryPoint. Lokalizacja punktu zostaje wypełniona informacjami o lokalizacji pobieranymi z urządzenia w momencie otwierania ankiety. To zachowanie jest stosowane nawet wtedy, gdy ankieta ma powtórzenia z pytaniami typu map (mapa), ale nie zawiera pytania tego typu poza powtórzeniami.
- W przypadku skonfigurowania kolumny appearance (wygląd) pytania typu geopoint (punkt geograficzny) na press-to-locate aplikacja Survey123 rejestruje punkt tylko wtedy, gdy użytkownik wchodzi w interakcję z pytaniem.
- Podczas rejestrowania odpowiedzi z użyciem mapy nie wszystkie funkcje aplikacji terenowej Survey123 są obsługiwane w aplikacji internetowej. Następujące funkcje są obsługiwane w aplikacji terenowej Survey123, ale nie w aplikacji internetowej:
- Mapy bazowe w trybie offline.
- Uśrednianie lokalizacji dla pytań typu geopoint (punkt geograficzny).
- Symbolizacja punktu geograficznego.
- Progi dokładności lokalizacji i wyrażenia określające jakość lokalizacji.
- Wszystkie właściwości pulldata("@geopoint"). Aplikacja internetowa obsługuje tylko właściwości x, y, z, horizontalAccuracy, verticalAccuracy, speed oraz direction.
Próg dokładności lokalizacji
Domyślnie aplikacja Survey123 nie sprawdza dokładności zbieranych wartości dotyczących położenia. Jeśli dokładność położenia jest istotna dla wyników ankiety, można zdefiniować próg dokładności z uśrednieniem lokalizacji. Można to zrobić, wprowadzając wartość liczbową w kolumnie body::accuracyThreshold pytania typu geopoint (punkt geograficzny). Wartość ta stanie się progiem dokładności, po przekroczeniu którego wartości nie będą już przechwytywane podczas uśredniania lokalizacji.
Kiedy nie jest wykonywane uśrednianie, panel mapy w aplikacji terenowej Survey123 wyświetla ostrzeżenie, jeśli dokładność położenia jest większa niż zdefiniowany próg, ale umożliwia użytkownikowi przechwycenie lokalizacji. Aby przechwycić lokalizację, która spełnia próg, należy poczekać, aż ostrzeżenie przestanie być wyświetlane, a następnie wybrać przycisk lokalizacji. Położenia, które nie spełniają progu dokładności, są automatycznie ignorowane podczas uśredniania.
Wyrażenia określające jakość lokalizacji
Próg dokładności położenia jest pojedynczą liczbą, minimalną wartością dokładności poziomej danej lokalizacji. Aby ostrzeżenie było wyświetlane w sytuacji, gdy lokalizacja użytkownika nie spełnia innych, bardziej złożonych wymagań jakości lub aby zapobiec przesyłaniu tak uzyskanej lokalizacji, można użyć odpowiedniego wyrażenia. Takie wyrażenia można wprowadzać w następujących kolumnach (i powiązanych z nimi kolumnach zawierających komunikaty):
- Za pomocą kolumn constraint i constraint_message można uniemożliwić użytkownikowi pobranie lokalizacji za pomocą pytania typu geopoint (punkt geograficzny), gdy warunek określony przez wyrażenie jakości lokalizacji nie został spełniony.
- Kolumny bind::esri:warning i bind::esri:warning_message pozwalają wyświetlić ostrzeżenie informujące, że warunek określony przez wyrażenie jakości lokalizacji nie został spełniony. Jeśli warunek określony przez wyrażenie jakości lokalizacji nie jest spełniony, kolor paska zawierającego wartość współrzędnych w górnej części pytania typu geopoint (punkt geograficzny) zmienia się na żółty. W takiej sytuacji użytkownik nadal może przechwycić lokalizację.
Wyrażenie można utworzyć w każdej z tych kolumn przy wykorzystaniu dowolnego pytania z ankiety, zwykle używane są pytania lub parametry powiązane z lokalizacją ankiety.
Wykaz parametrów lokalizacji, których można użyć, podano w poniższej sekcji Wydzielanie wartości punktów geograficznych.
Na przykład, można użyć poniższego wyrażenia w celu określenia, że użytkownik poruszał się z minimalną prędkością przed przechwyceniem lokalizacji, a dokładność pozioma jest lepsza niż 5 metrów:
pulldata("@geopoint", ., "horizontalAccuracy") < 5 and pulldata("@geopoint", ., "speed") < 0.1
Wskazówka:
Może zależeć nam, aby użytkownik przechwycił lokalizację punktu, kiedy się nie porusza; urządzenie w takim przypadku rzadko wskazuje prędkość równą zero. Z tego powodu w powyższym przykładzie jest sprawdzane, czy prędkość nie przekracza wartości 0,1 w celu utrzymania akceptowanego marginesu błędu.
Jeśli lokalizacja musi zostać przechwycona w warunkach opisanych przez wyrażenie, należy wyrażenie wprowadzić w kolumnie constraint (ograniczenie). Jeśli spełnienie tych warunków jest tylko zalecane, wprowadzenie wyrażenia w kolumnie bind::esri:warning spowoduje, że wyświetlany jest komunikat ostrzegawczy. Użytkownik w dalszym ciągu może przechwytywać lokalizację przez pytanie typu geopoint (punkt geograficzny).
Jeśli wartością wyrażenia umieszczonego w tych kolumnach jest fałsz, wyświetlane są komunikaty określone w kolumnach constraint (ograniczenie) i bind::esri:warning.
W przypadku bardzo długich lub złożonych wyrażeń zaleca się podzielenie funkcji pulldata("@geopoint") na oddzielne pytania i odwoływanie się w wyrażeniu do tych pytań poprzez ich nazwy. Na przykład w celu wykonania takich samych funkcji, jak w powyższym przykładzie, w pytaniu o nazwie hAccuracy można użyć następującego obliczenia:
pulldata("@geopoint", ${location}, "horizontalAccuracy")
Następnie w pytaniu o nazwie currentSpeed można użyć następującego obliczenia:
pulldata("@geopoint", ${location}, "speed")
Poniższego obliczenia można użyć jako wyrażenia definiującego komunikat ostrzegawczy lub ograniczenia w pytaniu typu geopoint (punkt geograficzny):
(${hAaccuracy} < 5) and (${currentSpeed} < 0.1)
Zgłaszanie przedziału ufności 95%
Twoja instytucja może wymagać zgłaszania zebranych danych w określonym przedziale ufności (confidence interval - CI). Domyślne, gdy zwracany jest typ dokładności, którym jest błąd średni kwadratowy (root mean square — RMS), przedział ufności wynosi 68%. Aby zgłaszać w ankiecie przedział ufności 95%, należy pomnożyć dokładność poziomą przez 1,7308, a dokładność pionową przez 1,9600. Więcej informacji o tych współczynnikach konwersji można znaleźć w dokumencie National Standard for Spatial Data Accuracy (Narodowy standard dokładności danych przestrzennych).
Przykład wysokiej dokładności
W tym przykładzie musi być spełniony warunek użycia absolutnie minimalnego zestawu zmiennych, jednak użytkownik może zbierać informacje o lokalizacji przy użyciu mniej ścisłych zmiennych. Względy bezpieczeństwa mogą uniemożliwiać użytkownikowi pozostawanie w danej lokalizacji wystarczająco długo, by spełnić preferowane wymagania. W tym przypadku wyświetlane jest ostrzeżenie, a użytkownik może zdecydować, czy pobrać lokalizację czy czekać dłużej.
Następujące wymagania bezwzględnie minimalnej dokładności są skonfigurowane przez autora ankiety:
- Dokładność pozioma o przedziale ufności 95% wynosi mniej niż dwa metry.
- Dokładność pionowa o przedziale ufności 95% wynosi mniej niż dwa metry.
- Rozmycie dokładności pozycji (Positional Dilution of Precision - PDOP) jest mniejsze lub równe 6,0.
- Używanych jest pięć satelitów lub więcej.
Następujące wymagania dotyczące preferowanej dokładności są skonfigurowane przez autora ankiety:
- Dokładność pozioma o przedziale ufności 95% wynosi mniej niż jeden metr.
- Dokładność pionowa o przedziale ufności 95% wynosi mniej niż jeden metr.
- PDOP jest mniejsze lub równe 2,0.
- Używanych jest siedem satelitów lub więcej.
Następujące obliczenie jest używane w pytaniu o nazwie haccuracy68cep:
pulldata("@geopoint", ${location}, "horizontalAccuracy")
Natomiast następujące obliczenie jest używane w pytaniu o nazwie haccuracy95ci:
${haccuracy68cep} * 1.7308
Po przeprowadzeniu podobnych obliczeń dla dokładności pionowej, w kolumnie constraint (ograniczenie) należy wprowadzić następujące wyrażenie reprezentujące bezwzględnie minimalną dokładność:
${accuracyType} = 0 and ${haccuracy95ci} < 2 and ${vaccuracy95ci} < 2 and ${pdop} <= 6 and ${satellitesInUse} >= 5
Następujące wyrażenie zostanie wprowadzone w kolumnie bind::esri:warning. Reprezentuje ono preferowaną dokładność. Używane tutaj wartości są zazwyczaj mniejsze niż te stosowane dla absolutnie minimalnej dokładności. Mniejsze wartości są preferowane, ale można używać większych wartości minimalnych.
${accuracyType} = 0 and ${haccuracy95ci} < 1 and ${vaccuracy95ci} < 1 and ${pdop} <= 2 and ${satellitesInUse} >= 7
Warstwy obiektowe 3D
Domyślnie pytania typu geopoint (punkt geograficzny) w aplikacji Survey123 nie obsługują wartości osi z (wysokości). Przechwytywana jest tylko długość i szerokość geograficzna w dwuwymiarowej warstwie obiektowej. Można to zmienić, wprowadzając wartość esriFieldTypePointZ w polu bind::esri:fieldType pytania, co umożliwi przechwytywanie wartości wysokości w warstwie obiektowej. Ponadto umożliwi to modyfikowanie pola wysokości podczas określania wartości punktu geograficznego.
Wartości domyślne
Dla pytania typu geopoint (punkt geograficzny) można ustawić lokalizację domyślną poprzez podanie w kolumnie default (wartość domyślna) zestawu rozdzielanych spacjami wartości szerokości i długości geograficznej (w stopniach dziesiętnych). Na przykład podanie wartości -37.814552 144.966071 ustawi Melbourne w Australii jako domyślną lokalizację w pytaniu typu geopoint (punkt geograficzny).
Wskazówka:
Przyjęcie domyślnej lokalizacji geograficznej na obszarze półkuli południowej spowoduje błąd w programie Microsoft Excel, ponieważ taka wartość jest odczytywana jako formuła, gdyż rozpoczyna się znakiem minus (-). W takim przypadku przed pierwszą wartością należy umieścić znak apostrofu, dzięki czemu program Excel odczyta ją prawidłowo. Dodanie znaku apostrofu nie powoduje zmian w działaniu aplikacji Survey123.
Jeśli lokalizacja domyślna nie zostanie określona, jako lokalizacja pytania typu geopoint (punkt geograficzny) zostanie automatycznie przyjęta bieżąca lokalizacja urządzenia. Aby temu zapobiec, ustaw wartość domyślną jako null. W pytaniu typu geopoint (punkt geograficzny) będą wyświetlane opcje włączenia gromadzenia lokalizacji, wczytania strony mapy w celu ręcznego skonfigurowania lokalizacji lub odświeżenia obliczeń, jeśli zastosowano obliczenie.
Pytania typu geopoint (punkt geograficzny), które zostały przełączone ze stanu nieistotne w stan istotne, nie zostaną automatycznie uaktualnione o lokalizację urządzenia. Jako wartość domyślną należy skonfigurować position (pozycja), aby automatycznie uzyskiwać bieżącą lokalizację wskazywaną przez urządzenie, gdy pytanie staje się istotne (odpowiednie).
Zawarte w ankietach pytania typu geopoint (punkt geograficzny) uruchamiane z poziomu folderu Skrzynka odbiorcza, Wersje robocze lub Skrzynka nadawcza nie są automatycznie aktualizowane bieżącą lokalizacją urządzenia. Jako wartość domyślną należy skonfigurować position (pozycja), aby automatycznie uzyskiwać bieżącą lokalizację wskazywaną przez urządzenie podczas otwierania ankiety z poziomu folderu.
Obliczenia
Pytanie typu geopoint (punkt geograficzny) można wypełnić na podstawie wyników innych pytań. Odpowiedź na pytanie typu geopoint (punkt geograficzny) jest sformatowana jako lista rozdzielanych spacjami wartości szerokości i długości geograficznej (w stopniach dziesiętnych), po których występują wartości opcjonalne, począwszy od wysokości i dokładności (w metrach). Wypełniając odpowiedź na pytanie typu geopoint (punkt geograficzny), należy stosować się do tej struktury, dzięki czemu przygotowana odpowiedź będzie prawidłowa.
Ponieważ nie można zrobić tego bezpośrednio podczas wypełniania na podstawie pytań typu select_one (wybierz jedną), zaleca się użycie funkcji substr() jako pomocy podczas tworzenia prawidłowej odpowiedzi. Nazwa punktu geograficznego może być na przykład następująca:
+059.38330_+018.00000
W przypadku tej wartości jest używana stała liczba znaków zarówno dla szerokości, jak i długości geograficznej wraz z zerami, które zwykle są obcinane. Między wartościami znajduje się znak podkreślenia, ponieważ w kolumnie name (nazwa) nie są dozwolone spacje. Wartość wynikowa może zostać przekształcona przy użyciu funkcji substr() w celu wypełnienia następującego przykładowego pytania typu geopoint (punkt geograficzny):
concat(substr(${LocationValue}, 0, 10), " ", substr(${LocationValue}, -10))
W tym przykładzie jest pobierane pierwsze 10 znaków wartości (szerokość geograficzna) oraz ostatnie 10 znaków (długość geograficzna). Następnie wartości te są prezentowane w postaci rozdzielonej spacją w celu wygenerowania prawidłowego wyniku dla punktu geograficznego.
Funkcja pulldata() umożliwia też wypełnienie pytania typu geopoint (punkt geograficzny) przy użyciu załączonego pliku csv. Najpierw dodaj plik .csv do folderu multimediów ankiety. Następnie dodaj funkcję podobną do następującej w kolumnie calculation (obliczenie):
pulldata('Intersections', 'Lat', 'IntersectionID', ${intersection}) + " " + pulldata('Intersections', 'Long', 'IntersectionID', ${intersection})
Podobnie jak w przykładzie substr() spowoduje to połączenie wartości szerokości i długości geograficznej lokalizacji za pomocą spacji w celu utworzenia prawidłowej odpowiedzi na pytanie typu geopoint (punkt geograficzny) na podstawie wcześniejszego pytania.
Przykłady obu tych obliczeń można znaleźć w materiałach dotyczących aplikacji Survey123 Connect.
Wymagane i tylko do odczytu
Pytania typu geopoint (punkt geograficzny) automatycznie umieszczają w ankiecie informacje o lokalizacji dostarczone przez urządzenie, jeśli są one dostępne. Jeśli urządzenie nie udostępni prawidłowej lokalizacji w odpowiedzi na ankietę, aplikacja Survey123 zwróci lokalizację 0,0, która wskazuje punkt na oceanie u wybrzeży Afryki. Oznaczenie pytania typu geopoint (punkt geograficzny) jako required (wymagane) uniemożliwia przesłanie ankiety z wartością pustą. Akceptowana będzie tylko ankieta z lokalizacją udostępnioną przez urządzenie lub wprowadzoną ręcznie.
Oznaczenie pytania typu geopoint (punkt geograficzny) jako read-only (tylko do odczytu) uniemożliwia ręczne wprowadzanie odpowiedzi. Może to być przydatne w przypadku pytań, które wymagają odpowiedzi automatycznej, a odpowiedź wprowadzona ręcznie powodowałaby problemy z zestawem danych. Zaleca się używać tej funkcji z jednym z opisanych powyżej obliczeń, co zapewni dyskretną wartość punktu geograficznego, której użytkownicy nie mogą zmienić.
Geowyszukiwanie i geokodowanie
W przypadku pytań typu geopoint (punkt geograficzny) obsługiwana jest funkcjonalność geowyszukiwania. Umożliwia ona użytkownikom wyszukiwanie adresu lub punktu zainteresowania, powiększanie mapy do tej lokalizacji i ustawianie w niej znacznika punktu geograficznego.
Domyślnie funkcja geowyszukiwania zwraca wyniki z całego świata. Adresy są wyszukiwane przy użyciu narzędzia ArcGIS Geocoding service.
Domyślnie geowyszukiwanie zwraca wyniki z całego świata. Adresy są wyszukiwane przy użyciu narzędzia ArcGIS Geocoding service. Zalogowani użytkownicy zobaczą również wszystkie skonfigurowane usługi geokodowania instytucji.
Notatka:
Geokodowanie przy użyciu aplikacji ArcGIS Geocoding service spowoduje zużycie kredytów. Więcej informacji można znaleźć w temacie Informacje o kredytach.Aby skonfigurować konkretny lokalizator, z którego mają być zwracane wyniki, należy podać identyfikator elementu lokalizatora w kolumnie bind::esri:parameters, na przykład geocode=36ff9e8c13e042a58cfce4ad87f55d19. Lokalizator używany w ankiecie ArcGIS Online musi być elementem w usłudze ArcGIS Online. Lokalizator używany w ankiecie ArcGIS Enterprise musi być elementem w tym samym portalu co ankieta.
Pytanie można również skonfigurować w taki sposób, aby tylko wykonać geokodowanie. W tym celu należy dodać pytanie typu text (tekst) z wyglądem geocode (geokodowanie). Więcej informacji można znaleźć w temacie Wygląd geokodowanie.
Odwrotne geokodowanie
Odwrotne geokodowanie można wykonać w aplikacji terenowej przez dłuższe naciśnięcie mapy lub współrzędnych, gdy otwarty jest pełny widok punktów geograficznych. Wynik nie jest jednak zapisywany ani przesyłany do ankiety. Wartość uzyskana poprzez geokodowanie odwrotne może zostać pobrana z punktu geograficznego przy użyciu funkcji pulldata("@geopoint", ${location}, "reversegeocode"), która zwraca lokalizację jako obiekt JSON. Poszczególne właściwości można wydzielić z obiektu poprzez podanie nazwy właściwości, ale właściwości te różnią się w zależności od użytego lokalizatora. W przypadku narzędzia ArcGIS Geocoding service jest zwracany obiekt JSON podobny do następującego:
{
"address": {
"Match_addr": "207-361 Flinders St, Melbourne, Victoria, 3000",
"LongLabel": "207-361 Flinders St, Melbourne, Victoria, 3000, AUS",
"ShortLabel": "207-361 Flinders St",
"Addr_type": "StreetAddress",
"Type": "",
"PlaceName": "",
"AddNum": "283",
"Address": "283 Flinders St",
"Block": "",
"Sector": "",
"Neighborhood": "Melbourne",
"District": "Melbourne",
"City": "Melbourne",
"MetroArea": "",
"Subregion": "",
"Region": "Victoria",
"RegionAbbr": "VIC",
"Territory": "",
"Postal": "3000",
"PostalExt": "",
"CntryName": "Australia",
"CountryCode": "AUS"
},
"location": {
"x": 144.96721048751365,
"y": -37.81768543612741,
"spatialReference": {
"wkid": 4326,
"latestWkid": 4326
}
}
}
Aby z obiektu JSON wydzielić określoną wartość, użyj funkcji pulldata("@geopoint") podobnej do poniższej, która wyodrębnia właściwość Match_addr:
pulldata("@geopoint", ${location}, "reversegeocode.address.Match_addr")
Podczas wykonywania geokodowania odwrotnego używana jest domyślna usługa geokodowania dla instytucji. Aby użyć innej usługi geokodowania, należy wprowadzić adres URL lokalizatora jako opcjonalny parametr funkcji w formacie pulldata("@geopoint", ${location}, "reversegeocode", ${locatorURL}). Jeśli usługa jest zabezpieczona lub ankieta jest przeznaczona do użytku publicznego, należy skonfigurować element proxy z zapisanymi poświadczeniami dostępu.
Jeśli zostanie podany adres URL lokalizatora, można użyć dodatkowych parametrów, które zostaną przekazane do adresu URL. Podobnie, jak w przypadku właściwości pochodzących z obiektu JSON, te parametry mogą się różnić w zależności od używanej usługi geokodowania. W poniższym przykładzie został użyty parametr featureTypes, powodujący, że dla określonych typów lokalizacji jako wartość zwracana będzie tylko nazwa firmy lub charakterystyczny obiekt:
pulldata("@geopoint", ${location}, "reversegeocode.address.Match_addr", "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer", "featureTypes=POI")
Wskazówka:
Jeśli domyślną usługą geokodowania wdrożenia oprogramowania ArcGIS Enterprise jest narzędzie ArcGIS Geocoding service lub narzędzie ArcGIS Geocoding service jest używane jako parametr adresu URL lokalizatora w ankiecie korporacyjnej, jak w powyższych instrukcjach, przy wykonywaniu geokodowania odwrotnego może zostać zgłoszony błąd tokena. Aby tego uniknąć, należy dla użytkownika z uprawnieniami do wykonywania geokodowania utworzyć element proxy z zapisanymi w nim poświadczeniami dostępu do usługi ArcGIS Online. Następnie element ten można skonfigurować jako domyślną usługę geokodowania dla portalu lub jako miejsce docelowe dla parametru adresu URL lokalizatora w funkcji geokodowania odwrotnego.
W celu uzyskania dodatkowych informacji o parametrach adresu URL geokodowania odwrotnego, w tym pełnej listy parametrów, które można przekazać do adresu URL, zajrzyj do opisu parametru reverseGeocode w dokumentacji interfejsu ArcGIS REST API.
Dołączenie kilku obliczeń geokodowania odwrotnego nie ma wpływu na wydajność ani na liczbę wykorzystanych kredytów. Na przykład można dołączyć poniższe trzy obliczenia dla poszczególnych właściwości:
pulldata("@geopoint", ${location}, "reversegeocode.address.Match_addr")
pulldata("@geopoint", ${location}, "reversegeocode.address.LongLabel")
pulldata("@geopoint", ${location}, "reversegeocode.address.ShortLabel")
Geokodowanie odwrotne jest przeprowadzane dla pierwszego obliczenia, co powoduje zużycie kredytów. Następnie odpowiedź zostaje zapisana w pamięci podręcznej i wykorzystana przy pozostałych dwóch obliczeniach. Nowe wywołanie geousługi jest konieczne tylko po zmianie adresu URL żądania geokodowania odwrotnego wynikającego ze zmiany lokalizacji, zmiany używanego parametru żądania lub z powodu wygaśnięcia oryginalnego tokena dostępu.
Konfigurowanie elementu lokalizatora proxy
Aby skonfigurować element lokalizatora proxy, wykonaj następujące czynności:
- Zaloguj się na konto instytucji ArcGIS za pomocą konta mającego uprawnienia do geokodowania.
- Na stronie Zasoby przejdź do opcji Dodaj element > Z adresu URL w przypadku usługi ArcGIS Online lub do opcji Dodaj element > Z Internetu w przypadku oprogramowania ArcGIS Enterprise i sprawdź, czy wybranym typem jest Usługa internetowa ArcGIS Server.
- Należy użyć adresu URL odpowiedniego lokalizatora, na przykład https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer w przypadku narzędzia ArcGIS Geocoding service.
Zostanie ona wykryta jako usługa zabezpieczona.
- Dodaj nazwę użytkownika i hasło konta ArcGIS z uprawnieniami do geokodowania.
- Wybierz opcję Przechowuj poświadczenia w elemencie usługi. Nie pytaj o uwierzytelnienie.
- Podaj tytuł i znaczniki.
- Kliknij przycisk Dodaj element.
- Udostępnij ten element lokalizatora online publicznie.
Więcej informacji można znaleźć w temacie Wymagania dotyczące konfigurowania własnych lokalizatorów dla usługi ArcGIS Online lub w temacie Konfigurowanie usług Utility Service w portalu dla oprogramowania ArcGIS Enterprise.
Wydzielanie wartości punktów geograficznych
W celu przeprowadzenia dekonstrukcji pytania typu geopoint (punkt geograficzny) można użyć funkcji pulldata("@geopoint") umożliwiającej wydzielenie wartości, które posłużą do wypełnienia wartości innych pytań. W poniższym przykładzie wydzielono wartości dokładności poziomej z pytania typu geopoint (punkt geograficzny):
pulldata("@geopoint", ${location}, "horizontalAccuracy")
Dostępność poszczególnych właściwości punktów geograficznych zależy od sprzętu. Następująca tabela zawiera właściwości, które można pobrać z punktu geograficznego:
Nazwa właściwości | Opis | Jednostka |
---|---|---|
x | Długość geograficzna, wartość dodatnia na półkuli wschodniej, a wartość ujemna na półkuli zachodniej. | Stopnie dziesiętne |
y | Szerokość geograficzna, wartość dodatnia na półkuli północnej, a wartość ujemna na półkuli południowej. | Stopnie dziesiętne |
z | Wysokość w metrach nad poziomem morza (domyślnie) lub wysokość powyżej elipsoidy (jeśli została wybrana w ustawieniach aplikacji terenowej). | Metry |
horizontalAccuracy | Dokładność pozioma współrzędnych x i y. | Metry |
verticalAccuracy | Dokładność pionowa współrzędnej z. | Metry |
speed | Prędkość względem ziemi. | Metry na sekundę |
verticalSpeed | Prędkość w pionie. | Metry na sekundę |
kierunek | Kierunek ruchu mierzony zgodnie z ruchem wskazówek zegara począwszy od północy. | Stopnie dziesiętne |
positionSourceType | Kategoria źródła pozycji. Potencjalne wyniki: Nieznany (0), Użytkownik (1), Lokalizacja systemowa (2), Urządzenia zewnętrzne (3), Urządzenie sieciowe (4) i Plik (5). | Brak |
positionSourceInfo.antennaHeight | Wysokość anteny urządzenia. Odległość od anteny do powierzchni terenu jest odejmowana od wartości wysokości. | Metry |
positionSourceInfo.altitudeType | Wybrany typ wysokości. Potencjalne wyniki to wysokość powyżej średniego poziomu morza (0) i wysokość powyżej elipsoidy (1). Ten element jest dostępny dla wszystkich typów dostawców lokalizacji. | Brak |
Następująca tabela zawiera właściwości dodatkowe, które można pobrać z punktu geograficznego zarejestrowanego przy użyciu odbiornika o wysokiej dokładności:
Nazwa właściwości | Opis | Jednostka |
---|---|---|
magneticVariation | Kąt między północą magnetyczną a rzeczywistą (geograficzną). | Stopnie dziesiętne |
fixType | Typ poprawki pozycji dla współrzędnych. Potencjalne wyniki: NoFix (0), GPS (1), DifferentialGPS (2), PrecisePositioningService (3), RTKFixed (4), RTKFloat (5), Estimated (6), Manual (7), Simulator (8) i SBAS (9). | Brak |
positionSourceInfo | Informacje o urządzeniu w formie obiektu JSON. Te informacje są przydatne podczas debugowania i weryfikacji. Poszczególne elementy mogą również zostać zwrócone z użyciem pełnej nazwy elementu. Wszystkie dostępne elementy można przejrzeć w wierszach poniższej tabeli. | Brak |
positionSourceInfo.pluginName | Nazwa wewnętrznego źródła pozycji. Ten element jest dostępny tylko dla zintegrowanego dostawcy lokalizacji urządzenia. | Brak |
positionSourceInfo.deviceAddress | Adres urządzenia. Ten element jest dostępny tylko dla zewnętrznych odbiorników GNSS. | Brak |
positionSourceInfo.deviceName | Nazwa urządzenia. Ten element jest dostępny tylko dla zewnętrznych odbiorników GNSS. | Brak |
positionSourceInfo.deviceType | Typ urządzenia zewnętrznego. Potencjalne wyniki: Nieznane (-1), Bluetooth (0), Port szeregowy (1) i Bluetooth LE (2). Ten element jest dostępny tylko dla zewnętrznych odbiorników GNSS. | Brak |
positionSourceInfo.networkName | Nazwa źródła pozycji sieciowej. Ten element jest dostępny tylko dla dostawców usług lokalizacji sieciowej. | Brak |
positionSourceInfo.networkAddress | Adres źródła pozycji sieciowej. Ten element jest dostępny tylko dla dostawców usług lokalizacji sieciowej. | Brak |
positionSourceInfo.networkPort | Port źródła pozycji sieciowej. Ten element jest dostępny tylko dla dostawców usług lokalizacji sieciowej. | Brak |
positionSourceInfo.geoidSeparationCustom | Rożnica między elipsoidą Ziemi WGS-84 i średnim poziomem morza zdefiniowana przez użytkownika w ustawieniach aplikacji. | Metry |
geoidSeparation | Różnica między elipsoidą Ziemi WGS-84 i średnim poziomem morza zgłoszona przez odbiornik GNSS. Ta wartość jest nazywana wysokością ortometryczną. | Metry |
accuracyType | Typ dokładności zgłaszany przez właściwości horizontalAccuracy i verticalAccuracy. Potencjalne wyniki: RMS (0) i DOP (1). RMS to dokładność błędu średniego kwadratowego. Jest ona obliczana na podstawie przedziału ufności 68% dla szerokości i długości geograficznej oraz błędów wysokości zgłoszonych w zdaniu GST przez odbiornik. Jeśli odbiornik nie obsługuje GST, jest używana wartość DOP. DOP to dokładność oparta na rozmyciu precyzji. Używa wartości stałej szacowanego przez użytkownika błędu zakresu (user estimated range error — UERE) do oceny dokładności poziomych i pionowych. | Brak |
positionAccuracy | Średni radialny błąd sferyczny. Obejmuje zarówno błąd poziomy, jak i pionowy. | Metry |
latitudeError | Wartość błędu 1-sigma szerokości geograficznej. Ta właściwość jest wypełniana tylko wtedy, gdy urządzenie pozycjonujące obsługuje zdania GST w strumieniach NMEA. | Metry |
longitudeError | Wartość błędu 1-sigma długości geograficznej. Ta właściwość jest wypełniana tylko wtedy, gdy urządzenie pozycjonujące obsługuje zdania GST w strumieniach NMEA. | Metry |
altitudeError | Wartość błędu 1-sigma wysokości. Ta właściwość jest wypełniana tylko wtedy, gdy urządzenie pozycjonujące obsługuje zdania GST w strumieniach NMEA. | Metry |
HDOP | Wartość poziomego rozmycia precyzji (Horizontal Dilution of Precision — HDOP) danych pozycjonowania. | Brak |
vdop | Wartość pionowego rozmycia precyzji (Vertical Dilution of Precision — VDOP) danych pozycjonowania. | Brak |
pdop | Wartość rozmycia precyzji pozycji (Positional Dilution of Precision — PDOP) danych pozycjonowania. Równanie używane do ustalania wartości PDOP ma postać: PDOP^2 = HDOP^2 + VDOP^2. | Brak |
differentialAge | Wiek poprawki i sygnału różnicowego używanych przez odbiornik GPS, aby różnicowo poprawiać pozycję. | Sekundy |
referenceStationId | ID różnicowej stacji referencyjnej (DSID) używanej przez odbiornik GPS. | Brak |
satellitesVisible | Liczba satelitów pozycjonujących widocznych w czasie zbierania informacji o lokalizacji. | Brak |
satellitesInUse | Liczba satelitów pozycjonujących, które zostały użyte do zwrócenia danych o pozycji. | Brak |
Format współrzędnych
Funkcja pulldata("@geopoint") może być używana także do wyodrębniania wartości punktów geograficznych i formatowania ich przy użyciu dodatkowych formatów współrzędnych:
- pulldata("@geopoint", ${location}, "DMS") zwraca punkt geograficzny jako stopnie, minuty i sekundy. Są one zwracane jako obiekt JSON:
{ "latitudeDegrees": 39, "latitudeHemisphere": "N", "latitudeMinutes": 57, "latitudeSeconds": 36.3, "latitudeText": "39°57'36.3\"N", "longitudeDegrees": 116, "longitudeHemisphere": "E", "longitudeMinutes": 27, "longitudeSeconds": 4, "longitudeText": "116°27'04.0\"E", "text": "39°57'36\"N 116°27'4\"E" }
- pulldata("@geopoint", ${location}, "DDM") zwraca punkt geograficzny w postaci stopni i minut dziesiętnych, natomiast pulldata("@geopoint", ${location}, "DD") zwraca punkt geograficzny w postaci stopni dziesiętnych. Wartości te są zwracane jako obiekty JSON i umożliwiają wydzielenie poszczególnych wartości przy użyciu dodatkowych parametrów w podobny sposób, jak w przypadku przedstawionego powyżej formatu stopni, minut i sekund.
Następujące formaty współrzędnych mogą być używane z opcjonalnym parametrem dokładności generującym wartość dziesiętną, która jest potęgą liczby 10 — na przykład 0,01, 0,1, 1, 10 lub 100.
- pulldata("@geopoint", ${location}, "MGRS") zwraca punkt geograficzny jako wartość w układzie współrzędnych Military Grid Reference System (MGRS) z dokładnością wynoszącą 1 metr. Podanie opcjonalnego parametru dokładności umożliwia zmianę dokładności. Na przykład parametr pulldata("@geopoint", ${location}, "MGRS", 100) zwraca wartość siatki z dokładnością wynoszącą 100 metrów.
- pulldata("@geopoint", ${location}, "USNG") zwraca punkt geograficzny jako wartość w układzie współrzędnych United States National Grid (USNG) z dokładnością wynoszącą 1 metr.
- pulldata("@geopoint", ${location}, "UTM") zwraca punkt geograficzny w postaci współrzędnych Universal Transverse Mercator (UTM) z dokładnością 1 metra. Są one zwracane jako obiekt JSON:
{ "band": "S", "easting": 452994, "northing": 4423429, "text": "50S 452994E 4423429N", "type": "UTM", "zone": 50 }
Symbolizacja punktu geograficznego
W pytaniu typu geopoint (punkt geograficzny) może być wyświetlany niestandardowy symbol dla punktowego znacznika na mapie za pomoc parametru symbol w kolumnie body::esri:style ankiety. Parametr musi określać nazwę pliku symbolu niestandardowego. Musi to być plik .png w folderze multimediów ankiety. Zapoznaj się z następującym przykładem:
symbol=hydrant.png
Parametr symbol może zawierać dodatkowe parametry służące do konfigurowania sposobu wyświetlania symbolu na mapie. Parametry te należy oddzielić od nazwy pliku znakiem zapytania, a od siebie wzajemnie — znakiem &. Na przykład parametr symbol może mieć następujące właściwości x, y i scale:
symbol=hydrant.png?x=0.2&y=0.7&scale=2
- Parametr x określa punkt zakotwiczenia symbolu w poziomie. Akceptuje on wartość od 0 (reprezentującą lewą krawędź obrazu) do 1 (reprezentującą prawą krawędź). Jeśli wartość nie zostanie zdefiniowana, zostanie użyta domyślna wartość 0,5.
- Parametr y określa punkt zakotwiczenia symbolu w pionie. Akceptuje on wartość od 0 (reprezentującą górną krawędź obrazu) do 1 (reprezentującą dolną krawędź). Jeśli wartość nie zostanie zdefiniowana, zostanie użyta domyślna wartość 1.
- Parametr scale określa, w jakiej skali będzie wyświetlany obraz. Wartości poniżej 1 zmniejszają obraz, wartości powyżej 1 — zwiększają.
Podana wartość może być zarówno stałą, jak i odniesieniem do pytania, na przykład: symbol=${symbol_question}. Wyrażenia wstawiane nie są obsługiwane.
Nakładanie punktów na mapie
Lokalizacje punktów z pierwszego pytania typu geopoint (punkt geograficzny) w powtórzeniu mogą zostać wyświetlone w dowolnym pytaniu typu mapa w ankiecie poprzez ustawienie kolumny body::esri:style dla pytania typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) lub geoshape (kształt geograficzny) na wartość overlay=repeat_name. Wszystkie punkty zarejestrowane dla pierwszego pytania typu geopoint (punkt geograficzny) w tym powtórzeniu są wyświetlane na mapie. Aby dostosować symbolizację nakładania, można użyć dodatkowych parametrów.
Opcjonalne parametry obsługiwane przez styl elementów nakładanych są następujące i mogą być rozdzielone znakiem &, na przykład overlay=repeat_name&preview=true:
Parametr | Opis | Przykład |
---|---|---|
wyświetlenie | Pokaż punkty nakładki w pytaniu typu mapa. Wartość domyślna to prawda (true). | view=false |
podgląd | Pokaż punkty nakładki w podglądzie mapy. Wartość domyślna to false. | preview=true |
ikona | Nazwa symbolu punktu używanego jako pinezki na mapie. Przejrzyj dostępne symbole w bibliotece Symbole punktowe w dokumentacji Esri Developer. | icon=esri_pin_two |
iconColor | Kolor ikony używanej dla pinezek na mapie. Ten parametr akceptuje standardową nazwę koloru albo jego szesnastkowy kod. Domyślna wartość to czarny. | iconColor=Blue |
iconOutlineColor | Kolor obrysu używanego dla pinezek na mapie. Ten parametr akceptuje standardową nazwę koloru albo jego szesnastkowy kod. Domyślna wartość to biały. | iconOutlineColor=#FF4500 |
iconSize | Rozmiar ikony wyświetlanej na mapie. Domyślna wartość to 30. | iconSize=40 |
label | Nazwa pytania ankiety służąca jako etykieta. | label=question_name |
labelColor | Kolor etykiety punktu. Ten parametr akceptuje standardową nazwę koloru albo jego szesnastkowy kod. Domyślna wartość to czarny. | labelColor=#FFD700 |
labelOutlineColor | Kolor obrysu etykiety. Ten parametr akceptuje standardową nazwę koloru albo jego szesnastkowy kod. Domyślna wartość to biały. | labelOutlineColor=Black |
fontSize | Rozmiar czcionki etykiety punktu. Domyślna wartość to 13. | fontSize=16 |
Styl pytania
W przypadku pytań typu map (mapa) możesz skonfigurować mapę bazową, narzędzia mapy i wysokość pytania.
Dla poszczególnych pytań typu map (mapa) można skonfigurować domyślną mapę bazową za pomocą parametru map w kolumnie body::esri:style. Na przykład ustawienie map="World Topography" spowoduje, że w pytaniu typu map (mapa) zostanie użyta mapa bazowa Topografia świata. Parametr map można także skonfigurować z użyciem identyfikatora elementu mapy, na przykład map=de26a3cf4cc9451298ea173c4b324736. Ten parametr obsługuje mapy online i offline, w tym własne mapy internetowe użytkownika. Więcej informacji można znaleźć w temacie Dodawanie mapy do ankiety.
W kolumnie body::esri:style akceptowany jest parametr mapTools umożliwiający kontrolowanie narzędzi mapy dostępnych w przypadku pytań typu map (mapa). Jeśli nie ustawiono parametru narzędzia mapy, wyświetlone zostaną wszystkie narzędzia. Akceptowane są następujące wartości:
- mapTools=search
- mapTools=mapSwitcher
- mapTools=zoom
- mapTools=home
- mapTools=locate
Można ustawić wiele narzędzi, oddzielając każdą wartość przecinkiem, na przykład mapTools=search,locate.
W kolumnie body::esri:style akceptowany jest parametr height w przypadku pytań typu mapa.
Wysokość pytania można skonfigurować, podając parametr height z wartością liczbową oraz opcjonalnie z jednostką. Jednostką domyślną jest lines. Odwołuje się ona do wysokości bieżącej czcionki tekstu wejściowego. Na przykład parametr height=5 powoduje, że wszystkie te pytania są wyświetlane w pięciu wierszach.
Jednostkę można również skonfigurować jako wartość procentową wysokości ekranu lub za pomocą liczby pikseli, dodając je do wartości jako przyrostek bez spacji. Akceptowane są na przykład wszystkie następujące wartości:
- height=5
- height=5lines
- height=25%
- height=250pixels
Wysokość i narzędzia mapy można ustawić z odstępem między nimi, na przykład height=25% mapTools=search,zoom.