Viac

Chcete zoskupiť viac ako 40 000 bodov z shapefile a vyplniť Mapy Google/Webapp?


Práve som spustil novú prácu s webovou aplikáciou Python/Django súvisiacu s GIS (a v GIS som úplne nový). Tu je moja úloha a to, čo som zatiaľ našiel, a ja sa zasekávam o to, aby som zistil, aký je najlepší spôsob alebo globálny štandardný spôsob robenia vecí.

  • Vytvárame webovú aplikáciu, do ktorej môže používateľ nahrať súbor s tvarmi, zo súboru vziať záznamy a body a potom ich naplniť na mape.

    1. Odovzdajte súbor tvaru
    2. Analyzujte súbor tvaru pomocou knižnice pyshp - to sa zdá byť v poriadku
    3. Som schopný čítať tvary (súradnice) a záznamy (hodnota pre každé pole v každom tvare)
    4. Teraz napríklad povedzme, že mám asi 40 000+ súradníc, z ktorých každá obsahuje záznamy v teréne
    5. Budem musieť týchto 40 000 bodov zaplniť do Máp Google - tieto body by mali byť reprezentované značkou a záznamy polí môžu byť reprezentované tepelnou mapou (v závislosti od toho, do ktorého poľa sa používateľ rozhodne filtrovať ako)
    6. Načítanie 40 000 bodov do Máp Google by určite nemalo zmysel, pretože to spomalí klientskú stránku vecí.

Čo môžem urobiť, aby to bolo rýchle alebo aby to fungovalo?

Keď uvažujeme o zhlukovaní blízkych súradníc v mriežke, a nielen o tom, každá súradnica má záznam v teréne a musíme ich nejako zoskupiť (?), Aby v klastrovanej súradnici bola presná reprezentácia hodnôt v nej. Pozrel som sa na niekoľko možností:-

  1. Použite http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.html, urýchlilo by to situáciu ... ale server bude stále odosielať 40 000 bodov, čo nemusí pracujte v mieste, kde musíme načítať viac ako 40 000 bodov za každý iný úsek na mape
  2. Skúmali sme, ako môžeme dosiahnuť http://www.gdal.org/grid_tutorial.html pomocou http://www.gdal.org/gdal_grid.html - generáciu .tiff sa mi nepodarilo spustiť. ešte
  3. Aby som dosiahol aj údaje o mriežke, našiel som http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html - aj keď si nemyslím, že by to takto fungovalo
  4. Náhodou som sa dozvedel o GeoDjango a https://github.com/biodiv/anycluster a zisťujem, či by to nemalo byť niečo, čo by som mal použiť
  5. a stále pokračujem vo výskume

Neviem, či existuje nejaký globálny štandard, vyzerá to ako bežný problém, s ktorým sa stretlo veľa ľudí. Pravdepodobne neviem, aké výrazy žargón hľadať.


Dva výrazy webového mapovania GIS, ktoré popisujete, sú skutočne klastrovanie a potom priestorové indexovanie. Klastrovanie sa zvyčajne vykonáva na strane klienta, zatiaľ čo indexovanie sa vykonáva na strane servera, zvyčajne pomocou geodatabázy, pričom modul vykresľovania máp na strane servera je v strede.

V KML je relatívne nová funkcia s názvom „Regióny“, ktorá sa pokúša zvládnuť zobrazovaciu stránku vecí. Pôvodne bol navrhnutý pre GoogleEarth, ale myslím si, že môže fungovať aj s GoogleMaps: https://developers.google.com/kml/documentation/regions?csw=1

Ak hľadáte ľudí, ktorí zobrazujú námorné údaje AIS, nájdete v GoogleMaps aj príklady klastrovania na strane klienta. Tu je jeden dobrý - oddialiť a potom prejsť do rôznych oblastí. Môžete sa pozrieť na zdroj stránky: http://www.shinemicro.com/marine_traffic.asp

Tu je príbuzná téma so stratégiou pomocou OpenLayers a GoogleMaps: Ako v OpenLayers zobraziť niekoľko bodov KML s rovnakými súradnicami?

Všetky vyššie uvedené stratégie stále prinútia vašich používateľov stiahnuť asi 2 MB bodových údajov v závislosti od veľkosti záznamu.

Spomenuli ste GeoDjango, ktoré by vás viedlo k používaniu skutočnej geodatabázy a mapového servera. Bude existovať strmá krivka učenia a oveľa viac budovania aplikácií, ale v konečnom dôsledku to bude fungovať lepšie ako ktorýkoľvek iný prístup.

Najprv by som otestoval 40 000 bodov v KML a zistil by som, aké je to zlé. Tak získate benchmark na porovnanie iných riešení. Skúste to tiež načítať v službe GoogleEarth, aby ste porovnali, ako to GE zvláda v porovnaní s GMaps.

Časť vášho rozhodnutia by mala byť založená na tom, ako ústredná je táto funkcia pre vašu aplikáciu. Ak je to nejaký menší kus väčšej aplikácie, potom nemusí stáť za to vyvinúť najlepšie možné riešenie pre túto časť. Ak je všetko postavené na tejto funkcii, pravdepodobne skončíte s programom GeoDjango alebo podobným.


Pozri si video: Jak wejść do Google Street View mapy Google tradycyjne (Septembra 2021).