Udostępnij za pomocą


Dane geoprzestrzenne — język zapytań w usłudze Cosmos DB (na platformie Azure i w sieci szkieletowej)

Język zapytań ma wbudowaną funkcję geoprzestrzenną do reprezentowania kształtów geometrycznych lub rzeczywistych lokalizacji/wielokątów na mapie. Dane geoprzestrzenne często obejmują zapytania zbliżeniowe. Na przykład pytanie "znajdź wszystkie lokalizacje handlowe w pobliżu mojej bieżącej lokalizacji" odpowiada za pomocą zapytania zbliżeniowego w wielu obiektach danych geoprzestrzennych.

Przypadki użycia

Typowe przypadki użycia geoprzestrzennego obejmują, ale nie są ograniczone do następujących:

  • Analiza geolokalizacji, kierująca konkretnymi inicjatywami marketingu opartymi na lokalizacjach.

  • Personalizacja oparta na lokalizacji dla branż, takich jak handel detaliczny i opieka zdrowotna, aby poprawić środowisko użytkownika.

  • Ulepszenia logistyki dla branż takich jak transport, w których optymalizacja ma kluczowe znaczenie.

  • Analiza ryzyka dla branż, takich jak ubezpieczenie i finanse, aby uzupełnić inne metadane.

  • Świadomość sytuacyjna*, w przypadku alertów i powiadomień opartych na zbliżeniu.

Wprowadzenie do danych przestrzennych

Dane przestrzenne opisują położenie i kształt obiektów w przestrzeni. W większości aplikacji te punkty i kształty odpowiadają obiektom na ziemi i danych geoprzestrzennych.

Dane przestrzenne mogą służyć do reprezentowania:

  • Lokalizacja osoby

  • Miejsce zainteresowania

  • Granica miasta lub jeziora

Język zapytań obsługuje dwa typy danych przestrzennych: typ danych geometrycznych i typ danych geograficznych .

  • Typ geometrii reprezentuje dane w układzie współrzędnych euklidesowych (płaskich). Ten typ jest przydatny w przypadku typowych zadań geometrycznych, takich jak linie pomiaru, przecinanie wielokątów i pomiar odległości między punktami.

  • Typ geografii reprezentuje dane w układzie współrzędnych okrągłych ziemi. Ten typ jest przydatny w przypadku typowych zadań geograficznych, takich jak określanie, czy lokalizacja znajduje się w określonych granicach i mierzenie odległości między lokalizacjami.

Obsługiwane typy danych

Język zapytań obsługuje indeksowanie i wykonywanie zapytań względem danych punktów geoprzestrzennych reprezentowanych przy użyciu specyfikacji GeoJSON. Struktury danych GeoJSON są prawidłowymi obiektami JSON, dzięki czemu można przechowywać je i wykonywać względem nich zapytania przy użyciu języka zapytań bez żadnych wyspecjalizowanych narzędzi ani bibliotek.

Język zapytań obsługuje następujące typy danych przestrzennych:

  • Punkt

  • LineString

  • Wielokąt

  • MultiPolygon

Punktów

Punkt określa pojedynczą pozycję w przestrzeni. W danych geoprzestrzennych punkt reprezentuje dokładną lokalizację, która może być adresem ulicy sklepu spożywczego, kiosku, samochodu lub miasta. Punkt jest reprezentowany w formacie GeoJSON (i języku zapytań) przy użyciu pary współrzędnych (długości iszerokości geograficznej).

Rozważmy ten przykładowy punkt GeoJSON. Długość geograficzna to -122.12826822304672 , a szerokość geograficzna to 47.63980239335718.

{
  "type": "Point",
  "coordinates": [
    -122.12826822304672,
    47.63980239335718
  ]
}

Wskazówka

Dla typu danych geografii specyfikacja GeoJSON określa długość geograficzną pierwszy i szerokość geograficzną sekundy. Podobnie jak w innych aplikacjach mapowania, długość geograficzna i szerokość geograficzna są kątami i reprezentowane pod względem stopni. Wartości długości geograficznej są mierzone na podstawie stopnia -180180.0 i stopnia, a wartości szerokości geograficznej są mierzone z równika i znajdują się między -90.0 stopniami i 90.0 stopniami.

Dla typu danych geometrycznych specyfikacja GeoJSON określa najpierw oś poziomą i oś pionową sekundę.

Typy danych przestrzennych można osadzać w elemencie, jak pokazano w tym przykładzie elementu obiektu zawierającego dane GeoJSON.

{
  "name": "Headquarters",
  "location": {
    "type": "Point",
    "coordinates": [
      -122.12826822304672,
      47.63980239335718
    ]
  },
  "category": "business-offices"
}

Język zapytań interpretuje współrzędne reprezentowane w systemie referencyjnym WGS-84. Aby uzyskać więcej informacji, zobacz współrzędnych systemów referencyjnych.

Ciągi liniowe

LineStrings reprezentują serię co najmniej dwóch punktów w przestrzeni i segmentów linii łączących je. W danych geoprzestrzennych ciągi LineString są często używane do reprezentowania autostrad lub rzek.

W tym przykładzie ciąg wiersza jest używany do reprezentowania linii rysowanej między dwoma punktami.

{
  "type": "LineString",
  "coordinates": [
    [ 31.8, -5 ],
    [ 31.8, -4.7 ]
  ]
}

Wielokątów

Wielokąt jest granicą połączonych punktów, które tworzy zamknięty ciąg LineString. Wielokąty są często używane do reprezentowania naturalnych formacji, takich jak jeziora lub jurysdykcje polityczne, takie jak miasta i państwa.

Punkty w obrębie wielokąta muszą być określone w kolejności licznika zegara. Wielokąt określony w kolejności wskazówek zegara reprezentuje odwrotność regionu w nim.

W tym przykładzie wielokąt jest tworzony przez połączenie wielu punktów.

{
  "type":"Polygon",
  "coordinates":[[
    [ 31.8, -5 ],
    [ 32, -5 ],
    [ 32, -4.7 ],
    [ 31.8, -4.7 ],
    [ 31.8, -5 ]
  ]]
}

Wskazówka

Specyfikacja GeoJSON wymaga, aby dla prawidłowych wielokątów podana ostatnia para współrzędnych powinna być taka sama jak pierwsza, aby utworzyć zamknięty kształt.

MultiPolygony

MultiPolygon jest tablicą zera lub większej liczby wielokątów. MultiPolygony nie mogą nakładać się na boki ani nie mają żadnego wspólnego obszaru. Mogą dotknąć co najmniej jednego punktu.

Oto przykład multipolygonu.

{
    "type":"MultiPolygon",
    "coordinates":[
      [[
          [52.0, 12.0],
          [53.0, 12.0],
          [53.0, 13.0],
          [52.0, 13.0],
          [52.0, 12.0]
      ]],
      [[
          [50.0, 0.0],
          [51.0, 0.0],
          [51.0, 5.0],
          [50.0, 5.0],
          [50.0, 0.0]
      ]]
    ]
}

Współrzędne systemy referencyjne

Ponieważ kształt ziemi jest nieregularny, współrzędne danych geoprzestrzennych geograficznych są reprezentowane w wielu współrzędnych systemach referencyjnych (CRS). Każdy crS ma własne ramki odniesienia i jednostek miary. Na przykład "National Grid of Britain" to system referencyjny jest dokładny dla Zjednoczonego Królestwa, ale nie poza nim.

Obecnie najpopularniejszym systemem CRS jest World Geodetic System WGS-84. Urządzenia GPS i wiele usług mapowania, w tym Google Maps i interfejsów API map Bing, używają WGS-84. Język zapytań obsługuje indeksowanie i wykonywanie zapytań dotyczących danych geoprzestrzennych geografii przy użyciu tylko WGS-84 CRS.