Viac

Existuje poskytovateľ LINQ pre GeoDatabase

Existuje poskytovateľ LINQ pre GeoDatabase


Chcem dopytovať svoju geodatabázu ArcSDE pomocou LINQ, ale neviem, či existuje poskytovateľ ESRI, ktorý môže čítať aj geometrie a ktorý je schopný zvládnuť aj archiváciu. Preto by som chcel napríklad načítať údaje z FeatureClass a použiť:

IRelationalOperator relOp = (IRelationalOperator) myFeature.Shape; var features = featureClass .Where (x => relOp.Within (x.Shape) && x.MyProperty> 1) .OrderBy (x => x.MyProperty)

Zdá sa, že zatiaľ čo dopytovanie jednoduchých štruktúr, ako je napríklad numerické pole, môže byť celkom jednoduché, predpokladám, že geometrické dotazy očakávajú oveľa viac práce.

Existuje to vôbec alebo už niekto urobil niečo podobné? Bude existovať v ArcGIS Pro (samozrejme nepoužívať arcobjects)?


Naozaj si myslím, že ESRI neposkytuje poskytovateľa LINQ pre GeoDatabázy, aj keď by to bolo super. Pamätám si na nejaké diskusie na fórach ESRI pred časom o ľuďoch podporujúcich takéto zlepšovanie. Myslím, že jedinečným spôsobom je:

  1. Implementujte to sami, myslím tým, vytvorením metódy rozšírenia preFeatureClassobjekt. To by mohli byť veľmi bláznivé veci !!
  2. Prístup k serveru SQL Server priamo cez Linq k SQL, akonáhle podporuje priestorové typy. Ale nie som si istý, ako by ste mohli zaobchádzať s relačnými operátormi.

PS1: Použil by som aISpatialFilteraIQueryFilterale dajte mi vedieť, ak nájdete niečo iné =) PS2: Zabudnite na konkrétnu implementáciu v ArcGIS Pro. To sa nestane v krátkom čase.


Najskôr by som chcel odporučiť použitie bitov tejto knižnice, pretože je základom toho, čo Katah popisovala pomocou metód rozšírenia a tried funkcií: https://github.com/esride-apf/Linq2ArcObjects

Zatiaľ nevidím podporu pre ISpatialFilter, ale myslím si, že by ste tento kód mohli vetviť a upraviť „src / FeatureClassExtensions.cs“ a pridať svoje priestorové filtrovanie.

Zdanlivo solídnou knižnicou rozšírení triedy esri linq / feature je Jumpercables / Wave @ Github tu: https://github.com/Jumpercables/Wave/tree/7b44df2fd4ebd0c581fc6b3926f63a35ea4f482d/src/Wave.Extensions.Esri/ESRI/ArcG.

Dúfam, že to pomôže!


Pozri si video: C# Essentials: Linq for Lists - Sorting, Filtering, and Aggregating Lists Easily