typ GEOGRAPHY

Platí pro:check označený jako ano Kontrola SQL Databricks označená jako ano Databricks Runtime 17.1 a vyšší

Important

Tato funkce je ve verzi Public Preview.

Představuje geografický objekt (bod, spojnicový řetězec, mnohoúhelník atd.), jehož referenční systém souřadnic je geografický a je popsán hodnotou GEOGRAPHY SRID typu. Podkladový prostor, ve kterém zeměpisný objekt žije, je periodický prostor s první osou představující délku ve stupních a druhou osu představující zeměpisnou šířku ve stupních. Očekává se, že souřadnice budou v [-180, 180] délce a v rozsahu [-90, 90] pro zeměpisné šířky.

Note

GEOGRAPHY Sloupce nejsou podporovány jako dimenze v zobrazeních metrik nebo materializovaných zobrazeních kanálů Lakeflow, protože tyto kontexty vyžadují GROUP BY podporu, která geoprostorová data v současné době neposkytují. Pokud chcete použít geoprostorová data v zobrazení metriky, přidejte sloupec jako míru místo dimenze.

Syntax

GEOGRAPHY ( { srid | ANY } )

Limits

Sloupec typu GEOGRAPHY(ANY) může obsahovat zeměpisné oblasti, jejichž hodnoty SRID se můžou lišit pro každý řádek. Sloupec typu GEOGRAPHY(ANY) nelze zachovat.

Jediná povolená hodnota SRID pro GEOGRAPHY typ je 4326. Uživateli se zobrazí chyba ST_INVALID_SRID_VALUE , pokud se pokusí definovat GEOGRAPHY sloupec s jinou hodnotou SRID než 4326.

Literals

Podrobnosti o tom, jak vytvořit GEOGRAPHY hodnotu, najdete tady:

Notes

  • Pokud chcete převést GEOGRAPHY hodnotu na jeden z geoprostorových standardů nebo široce používaných formátů, můžete použít:

Examples

> SELECT hex(st_asbinary(st_geogfromtext('POINT(1 2)')));
  0101000000000000000000f03f0000000000000040

> SELECT st_asewkt(st_geogfromwkb(X'0101000000000000000000f03f0000000000000040'));
  SRID=4326;POINT(1 2)

> SELECT st_asgeojson(st_geogfromtext('POINT(1 2)'));
  {"type":"Point","coordinates":[[1,2]]}

> SELECT st_astext(st_geogfromgeojson('{"type":"Point","coordinates":[[1,2]]}'));
  POINT(1 2)

> SELECT st_astext(to_geography('{"type":"Point","coordinates":[[1,2]]}'));
  POINT(1 2)

> SELECT try_to_geography('not a geography value');
  NULL