स्थानिक डेटा प्रकार
SQL में बिंदु, रेखाएँ और बहुभुज।
स्थानिक डेटा प्रकार, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
स्थानिक डेटा क्या है
स्थानिक डेटा वास्तविक दुनिया के स्थानों, आकृतियों और क्षेत्रों का वर्णन करता है। साधारण संख्या या पाठ-श्रृंखला के विपरीत, स्थानिक मान में ज्यामितीय अर्थ निहित होता है — मानचित्र पर कोई बिंदु, सड़क का कोई खंड या किसी देश की सीमा।
PostGIS PostgreSQL का एक विस्तार है, जो शक्तिशाली स्थानिक डेटा-प्रकार और फलन जोड़कर आपके डेटाबेस को एक पूर्ण भौगोलिक सूचना प्रणाली (GIS) में बदल देता है।
-- Enable the PostGIS extension
CREATE EXTENSION IF NOT EXISTS postgis;GEOMETRY प्रकार
PostGIS में मुख्य स्थानिक प्रकार ज्यामिति है। यह समतल (यूक्लिडीय) निर्देशांक-स्थान में आकृतियाँ संग्रहीत करता है। स्तंभ बनाते समय आप किसी उपप्रकार, जैसे POINT, LINESTRING या POLYGON, को प्रतिबंध के रूप में निर्दिष्ट कर सकते हैं।
उपप्रकार के साथ SRID (स्थानिक संदर्भ ID) निर्दिष्ट करने से PostGIS को पता चलता है कि आपका डेटा किस निर्देशांक प्रणाली का उपयोग करता है।
CREATE TABLE locations (
id SERIAL PRIMARY KEY,
name TEXT,
geom geometry(POINT, 4326)
);POINT डालना
POINT X (देशांतर) और Y (अक्षांश) निर्देशांकों वाले एकल स्थान को दर्शाता है। ST_GeomFromText फलन Well-Known Text (WKT) स्ट्रिंग को ज्यामिति मान में बदलता है।
SRID 4326 WGS 84 निर्देशांक प्रणाली है, जिसका उपयोग पूरी दुनिया में GPS उपकरण करते हैं।
INSERT INTO locations (name, geom)
VALUES
('Eiffel Tower', ST_GeomFromText('POINT(2.2945 48.8584)', 4326)),
('Big Ben', ST_GeomFromText('POINT(-0.1246 51.5007)', 4326)),
('Colosseum', ST_GeomFromText('POINT(12.4922 41.8902)', 4326));
SELECT name, ST_AsText(geom) AS wkt FROM locations;LINESTRING प्रकार
LINESTRING दो या अधिक बिंदुओं का एक क्रमबद्ध अनुक्रम होता है, जिन्हें सीधी रेखाओं से जोड़ा जाता है। यह सड़कों, नदियों या किसी भी रैखिक विशेषता को दर्शाने के लिए उपयुक्त है।
WKT में संख्याओं की प्रत्येक जोड़ी एक शीर्ष-बिंदु (देशांतर अक्षांश) होती है। PostGIS पूरे पथ को एक ही ज्यामिति मान के रूप में संग्रहीत करता है।
CREATE TABLE roads (
id SERIAL PRIMARY KEY,
name TEXT,
path geometry(LINESTRING, 4326)
);
INSERT INTO roads (name, path)
VALUES (
'High Street',
ST_GeomFromText(
'LINESTRING(-0.125 51.500, -0.120 51.502, -0.115 51.505)',
4326
)
);
SELECT name, ST_Length(path) AS length_degrees FROM roads;POLYGON प्रकार
POLYGON किसी घिरे हुए क्षेत्र को परिभाषित करता है। इसकी बाहरी सीमा एक वलय होती है — एक बंद LINESTRING, जिसमें पहला और अंतिम बिंदु समान होते हैं। किसी बहुभुज में आंतरिक वलय (छेद) भी हो सकते हैं, जिनसे किसी उद्यान के भीतर स्थित झील जैसे क्षेत्रों को दर्शाया जा सकता है।
सभी वलय बंद होने चाहिए: आरंभिक निर्देशांक को अंत में दोहराएँ।
CREATE TABLE zones (
id SERIAL PRIMARY KEY,
name TEXT,
area geometry(POLYGON, 4326)
);
INSERT INTO zones (name, area)
VALUES (
'Central Park Approx',
ST_GeomFromText(
'POLYGON((-73.9817 40.7681, -73.9580 40.7681,
-73.9580 40.7964, -73.9817 40.7964,
-73.9817 40.7681))',
4326
)
);
SELECT name, ST_Area(area) AS area_sq_deg FROM zones;GEOGRAPHY बनाम GEOMETRY
PostGIS स्थानिक प्रकारों के दो परिवार प्रदान करता है: ज्यामिति समतल कार्तीय तल का उपयोग करती है, जबकि भौगोलिक प्रकार पृथ्वी को एक वक्र दीर्घवृत्ताभ के रूप में मॉडल करता है।
बड़े क्षेत्रों में मीटर में वास्तविक दुनिया की सटीक दूरियाँ चाहिए हों, तो भौगोलिक प्रकार का उपयोग करें। स्थानीय प्रक्षेपित निर्देशांक प्रणाली में काम कर रहे हों या अधिकतम प्रदर्शन चाहिए हो, तो ज्यामिति का उपयोग करें।
CREATE TABLE cities (
id SERIAL PRIMARY KEY,
name TEXT,
geog geography(POINT, 4326)
);
INSERT INTO cities (name, geog) VALUES
('New York', ST_GeogFromText('POINT(-74.0060 40.7128)')),
('London', ST_GeogFromText('POINT(-0.1278 51.5074)'));
-- Distance in metres using geography
SELECT
a.name AS from_city,
b.name AS to_city,
ROUND(ST_Distance(a.geog, b.geog)::NUMERIC) AS distance_m
FROM cities a, cities b
WHERE a.name = 'New York' AND b.name = 'London';मानक-पाठ (WKT) और WKB
स्थानिक डेटा को दो मानक प्रारूपों में क्रमबद्ध किया जा सकता है। मानक-पाठ (WKT) मनुष्यों के लिए पढ़ने योग्य होता है: POINT(2.29 48.86)। मानक-द्विआधारी (WKB) एक संक्षिप्त द्विआधारी निरूपण है, जिसका उपयोग आंतरिक रूप से और डेटा स्थानांतरण के लिए किया जाता है।
PostGIS आंतरिक संग्रहण और इन प्रारूपों के बीच रूपांतरण के लिए ST_AsText और ST_AsBinary प्रदान करता है।
SELECT
name,
ST_AsText(geom) AS wkt,
ST_AsEWKT(geom) AS ewkt,
encode(ST_AsBinary(geom), 'hex') AS wkb_hex
FROM locations
LIMIT 2;MULTIPOINT, MULTILINESTRING, MULTIPOLYGON
PostGIS बहु-ज्यामितीय प्रकारों का भी समर्थन करता है, जो एक ही प्रकार की कई आकृतियों को एक मान में समूहित करते हैं। यह तब उपयोगी होता है, जब कोई एक वास्तविक विशेषता अलग-अलग हिस्सों से बनी हो — उदाहरण के लिए, MULTIPOLYGON के रूप में मॉडल किया गया द्वीपसमूह।
सभी मानक स्थानिक फलन बहु-ज्यामितियों पर भी उसी तरह काम करते हैं।
SELECT ST_AsText(
ST_GeomFromText(
'MULTIPOLYGON(
((0 0, 4 0, 4 4, 0 4, 0 0)),
((10 10, 14 10, 14 14, 10 14, 10 10))
)'
)
) AS multi_poly;
SELECT ST_NumGeometries(
ST_GeomFromText(
'MULTIPOLYGON(
((0 0, 4 0, 4 4, 0 4, 0 0)),
((10 10, 14 10, 14 14, 10 14, 10 10))
)'
)
) AS part_count;GEOMETRYCOLLECTION
GEOMETRYCOLLECTION सबसे सामान्य स्थानिक प्रकार है — इसमें एक ही मान के भीतर बिंदुओं, रेखाओं और बहुभुजों का मिश्रण रखा जा सकता है। यह लचीलापन तब उपयोगी होता है, जब किसी डेटा-समूह में एक ही स्तंभ में विषम ज्यामिति प्रकार संग्रहीत किए जा सकते हों।
आप ST_GeometryN से अलग-अलग सदस्यों को निकाल सकते हैं।
SELECT ST_AsText(
ST_GeomFromText(
'GEOMETRYCOLLECTION(
POINT(1 1),
LINESTRING(0 0, 1 1, 2 2),
POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))
)'
)
) AS collection;
SELECT ST_AsText(
ST_GeometryN(
ST_GeomFromText(
'GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(0 0, 1 1))'
),
1
)
) AS first_member;GIST के साथ स्थानिक अनुक्रमणिकाएँ
अंतर्वेशन या निकटता जाँचने वाले स्थानिक प्रश्नों में प्रत्येक पंक्ति की ज्यामिति की तुलना करनी पड़ सकती है — जिससे संभावित रूप से लाखों आकृतियों को स्कैन करना पड़े। एक GIST अनुक्रमणिका ज्यामितियों के सीमाबद्ध आयतों का अनुक्रमण करके इस प्रक्रिया को बहुत तेज़ कर देती है और PostgreSQL को उन पंक्तियों को छोड़ने देती है, जिनके मेल खाने की कोई संभावना नहीं है।
जिन ज्यामिति या भौगोलिक प्रकार वाले स्तंभों पर आप अक्सर प्रश्न चलाते हैं, उन पर सदैव GIST अनुक्रमणिका बनाएँ।
-- Create a GIST index on a geometry column
CREATE INDEX idx_locations_geom
ON locations
USING GIST (geom);
-- PostgreSQL will now use the index for spatial operators
EXPLAIN ANALYZE
SELECT name
FROM locations
WHERE ST_DWithin(
geom,
ST_GeomFromText('POINT(2.3 48.9)', 4326),
1.0
);ज्यामिति के गुण पढ़ना
PostGIS किसी भी ज्यामिति से उसके गुण निकालने के लिए अभिगमक फलन प्रदान करता है। ST_X और ST_Y किसी बिंदु के निर्देशांक लौटाते हैं, ST_SRID स्थानिक संदर्भ ID लौटाता है और ST_GeometryType उपप्रकार का नाम लौटाता है।
स्थानिक डेटा की जाँच और मान्यकरण के लिए ये फलन आवश्यक हैं।
SELECT
name,
ST_X(geom) AS longitude,
ST_Y(geom) AS latitude,
ST_SRID(geom) AS srid,
ST_GeometryType(geom) AS geom_type,
ST_IsValid(geom) AS is_valid
FROM locations;त्वरित जाँच
PostGIS के स्थानिक डेटा प्रकारों की अपनी समझ जाँचें।
पाठ का पुनरावलोकन
इस पाठ में आपने PostGIS द्वारा प्रदान किए जाने वाले मुख्य स्थानिक डेटा प्रकारों का अध्ययन किया। आपने सीखा कि POINT, LINESTRING और POLYGON तीन मूलभूत ज्यामिति उपप्रकार हैं, जबकि बहु-ज्यामिति रूप (MULTIPOINT, MULTILINESTRING, MULTIPOLYGON) और सभी प्रकारों को समेटने वाला GEOMETRYCOLLECTION अधिक जटिल आकृतियों को संभालते हैं।
आपने समतल ज्यामिति प्रकार और दीर्घवृत्ताभ भौगोलिक प्रकार के बीच का अंतर देखा और यह भी समझा कि इनमें से किसे कब चुनना है। Well-Known Text (WKT) आपको स्थानिक मानों को मनुष्यों के लिए पढ़ने योग्य स्ट्रिंग के रूप में पढ़ने और लिखने देता है, जबकि GIST अनुक्रमणिकाएँ बड़े पैमाने पर स्थानिक प्रश्नों को तेज़ बनाए रखती हैं। ST_X, ST_SRID और ST_GeometryType जैसे अभिगमक फलन आपको किसी भी ज्यामिति मान का सीधे एसक्यूएल में निरीक्षण करने देते हैं।
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 46
- पाठ
- 183
अक्सर पूछे जाने वाले प्रश्न
क्या “स्थानिक डेटा प्रकार” पाठ निःशुल्क है?
हाँ—“स्थानिक डेटा प्रकार” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“स्थानिक डेटा प्रकार” में मैं क्या सीखूँगा?
SQL में बिंदु, रेखाएँ और बहुभुज। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“स्थानिक डेटा प्रकार” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- स्थानिक डेटा प्रकार
- दूरी और निकटतम पड़ोसी
- स्थानिक जॉइन और समावेशन
- स्थानिक इंडेक्स (GiST)