Bagaimana cara membuat dan menanyakan tabel yang berisi lintang/bujur menggunakan PostGIS?

Bagaimana cara membuat tabel yang berisi titik geografi (lintang/bujur) menggunakan PostGIS? Lalu juga, apa format untuk memasukkan ke dalam tabel ini (Menggunakan SQL/PostgreSQL)?

Apakah hanya yang berikut ini untuk pembuatan tabel:

CREATE TABLE x (geog geography(point, 4326))

Jika ya, apa itu point dan kapan Anda akan menggunakan ST_Point(X,Y)

Haruskah kolom ini memiliki indeks?

Catatan: Banyak pertanyaan yang sebelumnya dijawab secara detail bagaimana cara mengkonversi. Tapi saya ingin membuat tabel kosong dari awal yang mendukung penyimpanan garis lintang dan bujur.


person Connorelsea    schedule 05.01.2017    source sumber


Jawaban (1)


Ya, Sintaks Membuat tabel dengan Geografi sesederhana CREATE TABLE x (geog geography(POINT,4326) );

Dalam Perintah ini, POINT adalah tipe bentuk yang akan disimpan oleh tabel ini. Kemungkinan lainnya adalah:

  • GARIS GARIS
  • POLIGON
  • GANDA
  • MULTILINESTRING
  • MULTIPOLIGON
  • KOLEKSI GEOMETRI

Alasan mengapa menyimpan Geografi dalam tabel masuk akal dalam beberapa kasus, adalah karena hal ini memberi Anda kemampuan untuk menjalankan beberapa fungsi yang akan memberi Anda hasil seolah-olah Anda sedang menghitung di Bumi Bulat. Jadi misalnya saya dapat menyimpan dua titik sebagai Geografi (hanya mengetahui panjang lintang masing-masing titik), dan saya dapat dengan mudah menemukan jarak di antara keduanya dalam Meter

ST_Point(X,Y) hanyalah fungsi yang mengambil dua bilangan, lalu membuat titik yang memiliki X sebagai bilangan pertama dan Y sebagai bilangan kedua. Pasangan ini tidak harus berupa pasangan Lat-long. Faktanya, Poin ini tidak memiliki konsep di sistem referensi Koordinat mana.

Setelah Anda membuat tabel, memasukkan catatan ke dalamnya, semudah: INSERT INTO X (geog) VALUES (ST_GeographyFromText('POINT(2.5559 49.0083)'));

Di sini Anda membuat titik Geografi untuk Paris, dengan garis lintang 49.0083LU dan garis bujur 2.5559 BT

person Devdatta Tengshe    schedule 05.01.2017