পোস্টজিআইএস দিয়ে স্থানিক টেবিল তৈরি করা


20

পোস্টজিআইএস ডকুমেন্টেশনে এটি বলেছে যে এসকিউএল সহ স্থানিক টেবিল তৈরির জন্য দুটি পদক্ষেপ রয়েছে:

  1. একটি সাধারণ অ-স্থানীয় টেবিল তৈরি করুন।
  2. ওপেনজিআইএস "অ্যাডজিওট্রি কলম" ফাংশনটি ব্যবহার করে টেবিলটিতে একটি স্থানিক কলাম যুক্ত করুন।

যদি আমি উদাহরণগুলি অনুসরণ করি তবে আমি এই জাতীয় একটি টেবিল তৈরি করব terrain_points:

CREATE TABLE terrain_points ( 
  ogc_fid serial NOT NULL, 
  elevation double precision,
);

SELECT AddGeometryColumn('terrain_points', 'wkb_geometry', 3725, 'POINT', 3 );

বিকল্পভাবে, আমি যদি পিজএডমিন III- তে বিদ্যমান সারণীগুলি দেখি তবে মনে হয় আমি একই টেবিলটি তৈরি করতে পারলাম:

CREATE TABLE terrain_points
(
  ogc_fid serial NOT NULL,
  wkb_geometry geometry,
  elevation double precision,
  CONSTRAINT terrain_points_pk PRIMARY KEY (ogc_fid),
  CONSTRAINT enforce_dims_wkb_geometry CHECK (st_ndims(wkb_geometry) = 3),
  CONSTRAINT enforce_geotype_wkb_geometry CHECK (geometrytype(wkb_geometry) = 'POINT'::text OR wkb_geometry IS NULL),
  CONSTRAINT enforce_srid_wkb_geometry CHECK (st_srid(wkb_geometry) = 3725)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE terrain_points OWNER TO postgres;

-- Index: terrain_points_geom_idx

-- DROP INDEX terrain_points_geom_idx;

CREATE INDEX terrain_points_geom_idx
  ON terrain_points
  USING gist
  (wkb_geometry);

এই দুটি পদ্ধতিতে কি একই ফল পাওয়া যায়? পিগএডমিন তৃতীয়ের উপর ভিত্তি করে সংস্করণটি কি কেবল আরও ভার্বোস এবং AddGeometryColumnডিফল্টরূপে এমন কিছু করা যায় ?


আমি আশা করি আপনি রাস্টার প্রতিটি পিক্সেল দখল করছেন না এবং এটি একটি বিন্দু হিসাবে সংরক্ষণ করছেন :)
রাগী ইয়াসার বারহুম

একদম না. :) তবে আমি এই টেবিলটি পূরণ করতে কয়েকটি কনট্যুর লাইনস্ট্রিংয়ে এসT_ডাম্পপয়েন্টগুলি ব্যবহার করতে যাচ্ছি।
বেনিয়ামিনগোল্ডার

উত্তর:


9

না, তারা একই ফলাফল উত্পাদন করছে না।

দ্বিতীয় পদ্ধতির সাহায্যে আপনার এখনও জিওওমেট্রিওয়াই_কুলুমএনএস সারণিতে একটি রেকর্ড যুক্ত করতে হবে এবং অন্য উত্তরের পরামর্শ অনুসারে আপনাকে একটি ইনসার্ট স্টেটমেন্ট দিয়ে বা পপুলেট_জমিট্রি_কলামগুলি ফাংশনটি ব্যবহার করতে হবে।

অ্যাডজিওমিট্রি কলাম আপনার জন্য এটি করার যত্ন নেবে (একসাথে সূচক এবং সীমাবদ্ধতা তৈরি করার সাথে)।


2
ভবিষ্যতের রেফারেন্সের জন্য, এটি আর সত্য নয়: postgis.net/docs/AddGeometryColumn.html
জ্যানোসিমাস

7

দুটি পদ্ধতিতে একই ফল পাওয়া উচিত। AddGeometryColumnকেবল জ্যামিতি ক্ষেত্র তৈরি করবে না, এটি বৈধতা দেবে এবং প্রয়োজনীয় সূচকগুলিও তৈরি করবে। যতক্ষণ আপনি এই সমস্ত জিনিস ম্যানুয়ালি করেন, ফলাফল একই হবে। আপনার যদি কোনও জ্যামিতি কলাম Populate_Geometry_Columnsথাকে তবে আপনি এটিটি যাচাই করতে এবং প্রয়োজনীয় সূচকগুলি তৈরি করতে ফাংশনটি ব্যবহার করতে পারেন ।


এর অর্থ কী দুটি পদ্ধতি একই ফল দেবে?
বেনজামিনগোল্ডার

এটি একই কাজ করবে, যদি আপনি বিদ্যমান জ্যামিতি_কলামগুলি ব্যবহার করেন, যথাযথভাবে বৈধকরণ এবং সূচকগুলি তৈরি করেছেন। আপনি পরীক্ষা পারে elsasoft.org/samples/postgre_postgis/...
Senthil

দুঃখিত @ সেন্থিল, আমি আপনার বাক্যটি বেশ বুঝতে পারছি না। আপনি যখন বলবেন এর অর্থ কী: "আপনি যদি বিদ্যমান জ্যামিতি_কলামগুলি ব্যবহার করেন, যথাযথভাবে সূচিগুলি যথাযথভাবে তৈরি এবং তৈরি করেন"? এটি উদাহরণস্বরূপ অনুপস্থিত একটি আদেশ কি?
বেনিয়ামিনগোল্ডার

@ বেনজামিনগোল্ডার এই লিঙ্কটি দিয়ে অ্যাডজিওমিট্রি কলাম কী করছে তা দেখুন: elsasoft.org/sample/postgre_postgis/… আপনার ক্ষেত্রে, wkb_geometry যতক্ষণ জ্যামিতি_কলামগুলির সারণীতে ইতিমধ্যে রয়েছে এবং আপনি নিজে সূচক তৈরি করেন। সুতরাং, ঠিক আছে। তবে, সবচেয়ে সহজ বিকল্পটি নতুন ক্ষেত্রগুলির জন্য অ্যাডজিওমিট্রি কলম সহ যান।
সেন্থিল

আপনার উত্তরটি আরও পরিষ্কার করার জন্য আমি সম্পাদনা করেছি। ধন্যবাদ.
বেনিয়ামিনগোল্ডার

5

পোস্টজিআইএস ২.০+ তে আপনি সাধারণ তথ্য সংজ্ঞা ভাষা ব্যবহার করে জ্যামিতি কলাম তৈরি করতে পারেন।

উদাহরণ স্বরূপ:

-- points in geographic wgs84 coordinates (epsg:4326)
create table mypoints (id serial, name varchar, geom geometry(Point, 4326));

-- lines in spherical mercator (epsg:3857)
create table mylines (id serial, name varchar, geom geometry(LineString, 3857));

-- polygons in Dutch national coordinate system (epsg:28992)
create table mypolygons (id serial, name varchar, geom geometry(Polygon, 28992));

-- multipolygons in British National Grid (epsg:27700)
create table 
  mymultipolygons(id serial, name varchar, geom geometry(Multipolygon, 27700));

-- generic geometry (no data type constraints)
create table mygeometries(id serial, name varchar, geom geometry);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.