Jak przyspieszyć usługi dynamicznej mapy?

16

Pracuję nad aplikacją opartą na ESRI Flex, która wyświetla dane z usługi dynamicznej mapy. Musi być dynamiczny, ponieważ użytkownik końcowy powinien mieć możliwość włączania i wyłączania warstw. Jest to możliwe tylko w przypadku usług mapy dynamicznej, a nie usług map kafelkowych.

Jakie są niektóre kroki, które można podjąć, aby zwiększyć szybkość, z jaką kafelki są wysyłane do klienta przez serwer?

Patrzę na dynamiczne mapy ESRI dostępne w ArcGIS online i są one dość szybkie. Masz pomysł, jak uzyskać tak dobrą wydajność?

Devdatta Tengshe
źródło
4
Możesz użyć osobnych usług map kafelkowych dla każdej warstwy, a następnie włączyć lub wyłączyć każdą z nich.
Britt Wescott,
@Seth: Skończyłem z tym samym wnioskiem co ty. Dzięki liczbie używanych warstw i oczekiwanej liczbie jednoczesnych użytkowników oddzielne usługi map kafelkowych zapewniają najlepszą wydajność.
Devdatta Tengshe,
Mamy ten sam problem, wysłałem prośbę o ulepszenie do ESRI, aby uzyskać wsparcie dla równoległego wykonywania warstw w dynamicznych usługach map, myślę, że to znacznie poprawiłoby wydajność.
MathiasWestin

Odpowiedzi:

11

Być może już to zrobiłeś, ale warto wspomnieć o innych, którzy mogą przyjść. Spędzanie czasu przy użyciu paska narzędzi publikowania usługi map w ArcMap może znacząco zmienić wydajność dynamicznej usługi map. Narzędzie Analiza mapy działa dobrze w celu znalezienia problemów, które spowalniają usługi map. Ponadto zapisywanie i publikowanie jako definicji usługi mapowej (MSD) zamiast MXD pozwala na znaczny wzrost wydajności.

Niektóre linki:

Brenner256
źródło
Podczas gdy inne odpowiedzi podnoszą ważne punkty, już je rozważałem. Seminarium, z którym się łączyłeś, dostarczyło mi pewnych informacji, których nie znałem, oprócz wszystkich rozwiązań sugerowanych przez innych. Dlatego oznaczę twoją odpowiedź jako zaakceptowaną, ponieważ twoje linki zapewniają więcej punktów i całościowy sposób rozwiązania problemu.
Devdatta Tengshe,
14

Zakładam, że tak jak w przypadku każdej usługi map internetowych na żywo, serwer map „myśli” tak mało, jak to możliwe. Innymi słowy, wstępnie oblicz wszystko, co możesz.

  1. Umieść wszystkie swoje dane w tym samym SRS, aby nie było projekcji „w locie”.
  2. Utwórz indeksy przestrzenne na swoich danych.
  3. Twórz uogólnione przeglądy danych i korzystaj z zależności skali, aby wybrać odpowiednią warstwę dla określonej skali. (np. nie ma sensu rysować poli z 10 000 wierzchołków, jeśli obraz wyjściowy ma tylko 250 x 250 pikseli).
DavidF
źródło
8

Kilka innych punktów, które należy dodać do odpowiedzi DavidF:

  • Jeśli możesz, skorzystaj z usługi zoptymalizowanej (MSD). Rysują szybciej niż zwykła usługa (MXD), a proces tworzenia usługi MSD spowoduje uruchomienie analizy na mapie, która może ujawnić problemy, które mogą prowadzić do wydłużenia czasu rysowania.

  • W miarę możliwości używaj uproszczonych mechanizmów renderowania. Unikaj skomplikowanych operacji rysowania, takich jak dithering, gradienty kolorów i znaczniki rastrowe.

  • Użyj minimalnej ilości danych, która spełnia wymagania Twojej firmy. Jeśli masz w danych atrybuty, które nie będą używane do rysowania mapy, usuń je. Nawet jeśli musisz raportować dane, możesz je uzyskać od klienta w razie potrzeby (chociaż to powoduje dodatkowe prace programistyczne)

  • Włącz pełne rejestrowanie mapy i przejrzyj pliki dziennika, aby zobaczyć, co robi ArcGIS Server podczas rysowania mapy. Instrukcje konfiguracji pełnego rejestrowania znajdują się na stronie blogów Esri . Dotyczy to wersji 9.3, ale lokalizacja konfiguracji jest taka sama dla ArcGIS 10.

Pamiętaj, strojenie jest bardzo specyficzną operacją, która jest bardzo subiektywna i specyficzna dla tego, co robisz; porównywanie wydajności własnej mapy z samym sobą będzie bardziej cenne niż porównywanie wydajności z wynikami innych osób.

mwalker
źródło
Zajęłam się pierwszymi trzema punktami, ale czy możesz rzucić więcej światła na „Pełne rejestrowanie mapy”? Próbowałem to znaleźć, ale jedyne linki, które znajduję, dotyczą usług ArcIMS.
Devdatta Tengshe,
Dodałem link do bloga Esri na temat rejestrowania ArcGIS Server.
mwalker