أكثر

PostGis: الهندسة من نص UTM


لدي بيانات عادية في جدول postgresql الذي يبدو كالتالي:

╔════╦═══════╦═════════════╦══════════════╦═══════ ═══╦═════════════════╗ ║ معرف ║ فهرس ║ شرقًا ║ شمالًا ║ utm_zone ║ utm_zone_letter ║ ╠════╬═══════╬═ ════════════╬══════════════╬══════════╬═══════════ ══════╣ 1 1 233410.0000 1024701.0000 38 شمالًا 1 ║ 2 213310.0000 1167201.0000 36 شمالًا 2 1 213310.0000 1167201.0000 ║ 31 B 2 2 213310.0000 ين ؛ 1167201.0000 ؛ 31 ؛ ب ؛ ؛ ═╩══════════╩═════════════════╝

ملاحظة: الإحداثيات ليست حقيقية ، لكنها مكتوبة بخط اليد

كما ترى ، هذه إحداثيات UTM ولكنها مخزنة في حقول نوع ديسيبل عادي.
أريد تحويل هذه الأعمدة الأربعة الأخيرة إلى نوع Geometry لـ PostGis.
إلى شيء مثل هذا:

╔════╦══════════════════════╗ ║ معرف ║ الهندسة ║ ╠════╬══════════ ════════════╣ ║ 1 ║ 02347237427342342347 ║ ║ 2 ║ 27584872345646325863 ║ ╚════╩═════════════════════ ═╝

لقد استخدمت استعلامًا مشابهًا لهذا:

- يُنشئ مضلعًا باستخدام SRID خاطئ: (SELECT z.id، ST_Polygon (z.geom، 3395) geom FROM (- يضيف أول نقطة من السطر في النهاية لإغلاقه (يُطلب من ST_Polygon) تحديد معرف معرف ، ST_AddPoint (g.geom، ST_StartPoint (g.geom)) geom FROM (- تجميع النقاط حسب المعرف وإنشاء هندسة خط مفتوح من كل مجموعة حدد t.id id ، ST_MakeLine (t.strPoints) geom FROM (- إنشاء نقطة (x) ، y) نص من الإحداثيات SELECT g.id id، g.index idx، 'POINT (' || g.easting || "|| g.northing || ')' strPoints from data g ORDER BY g.index) t GROUP BY t.id HAVING count (t.strPoints)> 2) g) z حيث ST_IsValid (z.geom)

لكن هذا لا يستخدم utm_zone و utm_zone_letter ويتم إنشاء النقاط والخطوط بدون قيمة SRID. يؤدي إنشاء مضلع من هذه القيم وتحديد بعض SRID إلى نتائج سيئة. في الوقت نفسه ، نظرًا لعدم احتواء النقاط والخطوط على مجموعة SRID ، لا يمكنني استخدام دالة قاعدة بيانات utmzone (هندسة) لأنها تتطلب هندسة لامتلاك SRID.

نظرت إلى ST_Transform و ST_FromText ووظائف أخرى ولكن لم أجد واحدة حيث يمكنني تحديد رقم وحرف منطقة UTM لإنشاء قيمة نوع Geometry.
إنشاء نقطة دون تحديد SRID يعطيني نتائج سيئة - تسقط نقاط على طيور البطريق في أنتاركتيكا وهذا خطأ.

هل يمكنك إخباري بكيفية تحويل تلك البيانات إلى قيم هندسية صحيحة مع تحديد SRID الصحيح؟


يمكنك استخدام المعلومات هنا لإنشاء SRID - أضف رقم المنطقة بشكل أساسي إلى 32600 (في الشمال) و 32700 في الجنوب. يعمل هذا إذا كان بإمكانك استخدام WGS84 كنظام مرجعي للإحداثيات الجغرافية.

يحدد utm_zone_letter نطاق خط العرض. إذا كانت البيانات موجودة دائمًا في نصف الكرة الشمالي ، فيمكنك تجاهلها واستخدام 32600 + utm_zone كمعرف معروف. إذا كانت البيانات في نصفي الكرة الأرضية ، فسيتعين عليك التحقق من الأحرف لتحديد أي نصفي الكرة الأرضية. تقع "CDEFGHJKLM" في نصف الكرة الجنوبي ، و "NPQRSTUVWX" في نصف الكرة الشمالي. A و B أقل من 80 جنوبًا و Y و Z أعلى من 84 شمالًا.


أعتقد أنه يجب أن تكون قادرًا على استخدام هذه الوظيفة (من هنا):

- الوظيفة: utmzone (الهندسة) - DROP FUNCTION utmzone (الهندسة) ؛ - الاستخدام: SELECT ST_Transform (the_geom، utmzone (ST_Centroid (the_geom))) FROM في وقت ما ؛ إنشاء أو استبدال وظيفة utmzone (هندسة) إرجاع عدد صحيح كـ $ BODY $ DECLARE geomgeog geomgeog؛ كثافة العمليات قبل int ؛ BEGIN geomgeog: = ST_Transform (14326 دولارًا أمريكيًا) ؛ إذا (ST_Y (geomgeog))> 0 ثم pref: = 32600 ؛ ELSE pref: = 32700 ؛ إنهاء إذا؛ المنطقة: = أرضية ((ST_X (geomgeog) +180) / 6) +1 ؛ منطقة العودة + بريف ؛ نهاية؛ $ BODY $ LANGUAGE "plpgsql" تكلفة غير قابلة للتغيير 100 ؛

ستحتاج إلى ترجمة منطقة UTM إلى رمز EPSG ، استخدمST_FromTextلإنشاء كائن هندسي في هذا الإسقاط ، ثم استخدمST_T التحويللتحويل كائن الهندسة الخاص بك إلى أي SRID تستخدمه للجدول بأكمله.

لم أجربها ، لكن هذا الرابط يعطي وصفًا لكيفية التحويل برمجيًا من خطوط الطول / العرض إلى منطقة UTM ؛ أتوقع أنه لن يكون من الصعب للغاية عكس العملية الحسابية.


لم يتم العثور على عامل مكاني ينضم إلى جدول بخلاف جدول الدراسات العليا

أحاول ضم جدولين في نفس قاعدة البيانات لكن بمخططات مختلفة.

يحتوي أحدهما على عمود هندسة PostGis والآخر إحداثيات 'x' و 'y' فقط.

معرفتي بنظم المعلومات الجغرافية وقواعد البيانات المكانية لا شيء تقريبًا ، ولكن ، باستخدام googling والتحقق من الوثائق ، تمكنت من التحقق مما إذا كانت هذه الإحداثيات في شكل هندسي معين ولكن ** عندما أحاول الانضمام إلى الجداول وفقًا لهذه المعايير ، فإنها تلقي بالخطأ التالي:

الاستعلام بالكامل كما يلي:

أو قم فقط بتغيير الشرط إلى isContained = false

لست متأكدًا مما إذا كنت أقوم بالتحويل بشكل صحيح (أعرف أن إحداثيات UTM الخاصة بنا موجودة في منطقة 31N ولكن لا أعرف أين يمكنني تحديد ذلك) ولكن ما يجعلني عالقًا هو حقيقة أنه يمكنني الحصول على هذه القيمة (لا يهم ما إذا كانت صحيحة أم لا) في إسقاط صلة متقاطعة كاملة ولكنها لا تعمل في التحديد.

لكن عندما أحاول تغيير هذا الشرط كما هو موضح من قبل ، أحصل على ذلك لم يتم العثور على عامل مكاني خطأ.

لقد تحققت من وجود قيم خالية في x و ذ أعمدة ، ولكن لا يوجد أي منها.

على أي حال ، على حد علمي ، تقوم CTE بتحديد جميع الصفوف ، لذلك ، على الرغم من أن هذا التحويل يعمل مع كل صف أم لا ، يجب أن يتم إلقاؤه إما إذا حاولت أخيرًا تحديد هذه الأعمدة أم لا.

من خلال معرفتي الخلفية لـ PostgreSQL ، يبدو الأمر غير منطقي بالنسبة لي (لقد تجنبت الأخطاء من خلال تجاهل الأعمدة الإشكالية غير المثيرة للاهتمام مسبقًا عدة مرات من قبل. ولكن الآن يبدو أن هذه الإستراتيجية لا تعمل ولا أفهم لماذا).

ملاحظة نهائية: الآن حاولت:

إنه خطأي لم أفعل هذا من قبل (كائنات PostGis موجودة في geogps وأنا أقوم ببناء الاستعلامات باستخدام مستخدم postgresql - عادةً ما أجعل الاستعلامات تعمل أولاً ثم أكلف عناء تعيين الأذونات للمستخدم الذي سيستخدمها في الإنتاج-. هذا هو السبب أقوم دائمًا ببادئة الجداول باسم المخطط).

ولكن ** ما زلت أتساءل لماذا تعمل مع "not isContained" وليس "isContained".


2 إجابات 2

إذا كان لديك مليارات الصفوف ، فاستخدم وراثة الجدول لتسريع أداء استعلاماتك وعملية تحميل البيانات.

كما قيل في التعليق ، قم أولاً بتقسيم بيانات الإدخال إلى مجموعة بيانات أصغر. تقوم أولاً بإنشاء جدول أصل ومن العديد من الجداول الفرعية كيف تقوم بإدخال الملفات. في النموذج ، استخدمت landmarks_child_1 كاسم للجدول. يمكن تسمية الجداول الأخرى على سبيل المثال ، landmarks_child_2 ، و landmarks_child_3 وما إلى ذلك.

الآن قم بإنشاء وملء الجدول الفرعي landmarks_child_1. كرر هذه الخطوة لجميع الجداول الفرعية الأخرى.

إذا كان لديك إحداثيات UTM بدلاً من الإحداثيات الطويلة / المتأخرة في جميع أنحاء العالم ، فقط قم بتغيير srid. بمعنى آخر. في Bejiing يمكنك استخدام srid 32650

الآن لديك بيانات في قاعدة البيانات الخاصة بك ويمكنك طلب البيانات.

نموذج الاستعلام

في نموذج الاستعلام هذا ، أطلب جميع النقاط في دائرة نصف قطرها 100 متر حول الإحداثيات 116.32015799999 ، 40.004775000971 (بيجين ، الصين) وبين الطوابع الزمنية 2016-01-01 01:00:00 و 2016-01-01 02:00:00 ( ساعة واحدة).

إذا كان لديك إحداثيات UTM ، فما عليك سوى استخدام ST_SetSrid () ولا تلجأ إلى الجغرافيا.

لماذا الميراث؟

في المقام الأول بسبب الأداء الأفضل. إذا كان لديك عدة ملايين من الصفوف ، فستكون استعلاماتك أسرع باستخدام التوريث حيث ستخزن مليار صف في جدول واحد. يمكنك الاستعلام عن الجدول الأصل وستحصل على نتائج من كل جدول تابع (وفقًا لشرط WHERE).

لا تحتاج إلى معرفة جدول الطفل الذي توجد فيه بياناتك فعليًا. سوف تفعل وراثة الجدول هذا من أجلك. (لمزيد من المعلومات: انظر الميراث)

مهم الإحداثيات في Postgis هي خطوط الطول / العرض ، وكذلك x / y. في خريطة google ومعظم واجهات برمجة تطبيقات الويب للخرائط ، يتم التعبير عن الإحداثيات بالترتيب المعكوس: خطوط الطول / العرض (y / x). استخدم الترتيب الصحيح!


مدهنتد

سكوتوس - هل يمكن للكونغرس إبطال ماربوري ضد ماديسون بموجب قانون؟

كيفية وضع دائرة حول بعض إدخالات المصفوفة معًا؟

هل هناك قائمة أساسية بالطرق التي يمكن من خلالها لماروغ منخفض المستوى الاستفادة من هجوم التسلل؟

إلى متى يمكن لأحزاب المعارضة في المملكة المتحدة منع إجراء انتخابات جديدة؟

لقد غيرت كلمة من المصدر ، كيف يمكنني الاستشهاد بها بشكل صحيح؟

لماذا لم يستخدم Thor الرمح القوي بدلاً من Stormbreaker؟

ابنة عمرها 2.5 سنة ترفض تناول الدواء

تمزق عند صنع لوحة مع جهاز توجيه

هل التكاملات المحددة وغير المحددة في الواقع شيئان مختلفان؟ أين الخلل في فهمي؟

القيمة المتوقعة حتى النجاح؟

خطأ "لا توجد ذاكرة RAM كافية" في PIC16F877a

استخدام الفاكهة المنقوعة في الفودكا

عدد الطائرات المطلوب تشغيلها في شركة طيران

مصفوفات محاذاة مثلثة علوية

هل كانت وجهة نظر روبن هود سليمة أخلاقياً؟

لونان مختلفان في ضربة / خط في Illustrator

هل قضبان التمرير ميتة في عام 2019؟

هل كانت هناك دول صوتت خارج الوجود؟

لوني المفضل هو الأزرق ما هو لونك المفضل؟

لماذا لا تتوفر بعض تطبيقات Mac على AppStore؟

ما هو أول مترجم LISP؟

PostGIS: التحليل المكاني لطبقة النقاط SRID 4326 باستخدام شبكة UTM

التحويل من SRID 900913 إلى 4326 باستخدام PostGis كيفية العثور على الصف الذي يحتوي على ملف شكل يحتوي على نقطة عرض / طويلة في عمود هندسة PostGIS الخاص بي لا تستخدم المسافة الفهرس للاستعلام المكاني التحويل من EPSG: 4326 إلى UTM في إحداثيات PostGISUTM من نقاط تسمية شبكة صيد السمك غير صحيح في Google Earth UTM احصل على ST_SummaryStats من جدول البيانات النقطية باستخدام geoJSON polygonConvert XY (SRID 4326) إلى UTM في الموقع المكاني بإرجاع نتائج NULL'UPDATE 0 لـ ST_ داخل الاستعلام - تحديد موقع النقاط داخل المضلعات مؤشر تنوع الشانون في QGIS عدد النقاط من جدولين في مضلعات باستخدام PostGreSQL

لدي جدول PostGIS بالنقاط SRID 4326 (طويل / عرضي) وأحتاج إلى إجراء بعض التحليلات عن طريق شبكة UTM 10x10 كم. لقد حصلت على الشبكة في جدول SRID 32628 ، لذلك قمت بإسقاط جدول النقاط على SRID 32628 باستخدام الأمر ST_Transform.

الآن ، أنا بحاجة إلى عد النقاط داخل خلايا الشبكة ، لكني أحصل فقط على قيم "0" في العد كما لو أنها لا تتداخل (لكنها تفعل ذلك!). لقد جربت عدة مجموعات من الاستعلامات بناءً على

ما الخطأ في كل هذا؟ مشاكل الإسقاط ، بناء جملة الاستعلام أو كليهما؟ كيف يمكن اصلاحها؟

يجب حساب count (point.geom) (point.geom). رمزك يعمل لأجلي

تحقق من أن الإحداثيات المعاد إسقاطها موجودة في النطاق الصالح لمنطقة UTM المختارة

الرجاء تحرير السؤال لتحديد النتائج التي تحصل عليها.

JGH نعم ، على الأقل بعض الإحداثيات المعاد إسقاطها تقع ضمن النطاق الصالح لمنطقة UTM المختارة. لكن ، أنت على حق ، سوف أتحقق من وجود رشاش آخر يغطي المنطقة بأكملها.

BERA لقد قمت بتحرير سؤالي ، حيث إنه لا يمثل مشكلة في الاسم (لقد راجعت). لذا ، إذا نجح الاستعلام ، فهل يمثل مشكلة في الإسقاط؟

لدي جدول PostGIS بالنقاط SRID 4326 (طويل / عرضي) وأحتاج إلى إجراء بعض التحليلات عن طريق شبكة UTM 10x10 كم. لقد حصلت على الشبكة في جدول SRID 32628 ، لذلك قمت بإسقاط جدول النقاط على SRID 32628 باستخدام الأمر ST_Transform.

الآن ، أنا بحاجة إلى عد النقاط داخل خلايا الشبكة ، لكني أحصل فقط على قيم "0" في العد كما لو أنها لا تتداخل (لكنها تفعل ذلك!). لقد جربت عدة مجموعات من الاستعلامات بناءً على

ما الخطأ في كل هذا؟ مشاكل الإسقاط ، بناء جملة الاستعلام أو كليهما؟ كيف يمكن اصلاحها؟

يجب حساب count (point.geom) (point.geom). رمزك يعمل لأجلي

تحقق من أن الإحداثيات المعاد إسقاطها موجودة في النطاق الصالح لمنطقة UTM المختارة

الرجاء تحرير السؤال لتحديد النتائج التي تحصل عليها.

JGH نعم ، على الأقل بعض الإحداثيات المعاد إسقاطها تقع ضمن النطاق الصالح لمنطقة UTM المختارة. لكن ، أنت على حق ، سوف أتحقق من وجود رشاش آخر يغطي المنطقة بأكملها.

BERA لقد قمت بتحرير سؤالي ، حيث إنه لا يمثل مشكلة في الاسم (لقد راجعت). لذا ، إذا نجح الاستعلام ، فهل يمثل مشكلة في الإسقاط؟

لدي جدول PostGIS بالنقاط SRID 4326 (طويل / عرضي) وأحتاج إلى إجراء بعض التحليلات عن طريق شبكة UTM 10x10 كم. لقد حصلت على الشبكة في جدول SRID 32628 ، لذلك قمت بإسقاط جدول النقاط على SRID 32628 باستخدام الأمر ST_Transform.

الآن ، أنا بحاجة إلى عد النقاط داخل خلايا الشبكة ، لكني أحصل فقط على قيم "0" في العد كما لو أنها لا تتداخل (لكنها تفعل ذلك!). لقد جربت عدة مجموعات من الاستعلامات بناءً على

ما الخطأ في كل هذا؟ مشاكل الإسقاط ، بناء جملة الاستعلام أو كليهما؟ كيف يمكن اصلاحها؟

لدي جدول PostGIS بالنقاط SRID 4326 (طويل / عرضي) وأحتاج إلى إجراء بعض التحليلات عن طريق شبكة UTM 10x10 كم. لقد حصلت على الشبكة في جدول SRID 32628 ، لذلك قمت بإسقاط جدول النقاط على SRID 32628 باستخدام الأمر ST_Transform.

الآن ، أنا بحاجة إلى عد النقاط داخل خلايا الشبكة ، لكني أحصل فقط على قيم "0" في العد كما لو أنها لا تتداخل (لكنها تفعل ذلك!). لقد جربت عدة مجموعات من الاستعلامات بناءً على

ما الخطأ في كل هذا؟ مشاكل الإسقاط ، بناء جملة الاستعلام أو كليهما؟ كيف يمكن اصلاحها؟

يجب حساب count (point.geom) (point.geom). رمزك يعمل لأجلي

تحقق من أن الإحداثيات المعاد إسقاطها موجودة في النطاق الصالح لمنطقة UTM المختارة

الرجاء تحرير السؤال لتحديد النتائج التي تحصل عليها.

JGH نعم ، على الأقل بعض الإحداثيات المعاد إسقاطها تقع ضمن النطاق الصالح لمنطقة UTM المختارة. لكن ، أنت على حق ، سوف أتحقق من وجود رشاش آخر يغطي المنطقة بأكملها.

BERA لقد قمت بتحرير سؤالي ، حيث إنه لا يمثل مشكلة في الاسم (لقد راجعت). لذا ، إذا نجح الاستعلام ، فهل يمثل مشكلة في الإسقاط؟

يجب حساب count (point.geom) (point.geom). رمزك يعمل لأجلي

تحقق من أن الإحداثيات المعاد إسقاطها موجودة في النطاق الصالح لمنطقة UTM المختارة

الرجاء تحرير السؤال لتحديد النتائج التي تحصل عليها.

JGH نعم ، على الأقل بعض الإحداثيات المعاد إسقاطها تقع ضمن النطاق الصالح لمنطقة UTM المختارة. لكن ، أنت على حق ، سوف أتحقق من وجود رشاش آخر يغطي المنطقة بأكملها.

BERA لقد قمت بتحرير سؤالي ، حيث إنه لا يمثل مشكلة في الاسم (لقد راجعت). لذا ، إذا نجح الاستعلام ، فهل يمثل مشكلة في الإسقاط؟

يجب حساب count (point.geom) (point.geom). رمزك يعمل لأجلي

يجب حساب count (point.geom) (point.geom). رمزك يعمل لأجلي

تحقق من أن الإحداثيات المعاد إسقاطها موجودة في النطاق الصالح لمنطقة UTM المختارة

تحقق من أن الإحداثيات المعاد إسقاطها موجودة في النطاق الصالح لمنطقة UTM المختارة

الرجاء تحرير السؤال لتحديد النتائج التي تحصل عليها.

الرجاء تحرير السؤال لتحديد النتائج التي تحصل عليها.

JGH نعم ، على الأقل بعض الإحداثيات المعاد إسقاطها تقع ضمن النطاق الصالح لمنطقة UTM المختارة. لكن ، أنت على حق ، سوف أتحقق من وجود رشاش آخر يغطي المنطقة بأكملها.

JGH نعم ، على الأقل بعض الإحداثيات المعاد إسقاطها تقع ضمن النطاق الصالح لمنطقة UTM المختارة. لكن ، أنت على حق ، سوف أتحقق من وجود رشاش آخر يغطي المنطقة بأكملها.

BERA لقد قمت بتحرير سؤالي ، حيث إنه لا يمثل مشكلة في الاسم (لقد راجعت). لذا ، إذا نجح الاستعلام ، فهل يمثل مشكلة في الإسقاط؟

BERA لقد قمت بتحرير سؤالي ، نظرًا لأنه لا يمثل مشكلة في الاسم (لقد راجعت). لذا ، إذا نجح الاستعلام ، فهل يمثل مشكلة في الإسقاط؟


مدهنتد

هل هناك أي فائدة أمنية فعلية لتقييد عناوين IP الأجنبية؟

مدير يتلاعب بأوراقي ، ما الفائدة منه؟

هل هذا التعديل على Lucky الفذ ضعيف؟

مؤامرة دائرة غير منتظمة في اللاتكس

تم ختم جواز سفري بختم خروج أثناء العبور إلى دولة شنغن أخرى عبر تركيا. هل كان هذا خطأ؟

هل تعمل الأفران المنزلية على تهوية الحرارة للخارج؟

ما هو أصل & # 8220clerics يستطيعون خلق الماء & # 8221 trope؟

ما الذي يمكنني فعله فعلاً بدرجة ائتمانية عالية؟

ما هو الغرض من الارتباط التلقائي؟

هل يمكن أن يستخدم الكاهن البري الشكل كحصان حدوة حصان السرعة؟

احذف المجلدات الفرعية الفارغة ، واحتفظ بالمجلد الأصل

كيف يمكنني التحقق من أن أحد الوالدين لديه أكثر من طفل واحد؟

هل من الآمن فصل محرك أقراص USB وامض بعد إخراجه "بأمان"؟

كيف تحدد أي تمثيل للدالة يجب استخدامه لطريقة نيوتن؟

هل قدرة Zack Morris على 'time stop' في "Saved By the Bell" هي قدرة خارقة للطبيعة؟

الشخصيات الثانوية في خيال دراسة الشخصية

كيف أنقل لمن حولي أنني أريد أن أفصل نفسي عن العطاء المستمر؟

كيف يثري الحكام من الحرب؟

(كم من الوقت) هل يجب أن أشبع زملائي الجدد في العمل؟

تفسير كارول للنماذج 1

هل يجب إعادة تعيين ترقيم الصفحات عند تغيير الترتيب؟

هل يمكنني فصل الثوم إلى فصوص للتخزين؟

إنشاء هندسة من خطوط الطول / العرض في الجدول باستخدام PostGIS؟

عبور شجرة جدول PostGIS PostGIS - الهندسة أو الجغرافيا البحث عن نقاط على مسافة بالأمتار الحصول على نوع البيانات لكل عمود من جدول PostGIS؟ UTM text كيفية إدراج Google Maps API Lat / Long في PostgreSQL Postgis GEOMETRY (GEOMETRY ، 4326) إضافة معلومات للعمود الهندسي .pgAdmin III SQL إنشاء نقطة إنشاء جدول PostGIS جديد مع السجلات + الأشكال الهندسية من جدول آخر؟

لدي جدول به أكثر من 800000 سجل بما في ذلك عمود العرض والعمود الطويل. لم يقم مصدر البيانات بإنشاء أشكال هندسية ، لذلك كنت أبحث عن كيفية القيام بذلك. أعلم أن هناك ST_MakePoint (x ، y ، SRID) لكن جميع الوثائق والخيوط الأخرى توضح كيفية إنشاء نقاط مفردة. كيف أقوم بإنشاء نوع الشكل الهندسي باستخدام هذه الأعمدة؟

تقصد إنشاء خطوط من هذه النقاط؟ لأن النقاط هندسية تمامًا مثل الخطوط والمضلعات. لذلك إذا كنت تبحث عن إنشاء سطور من هذه النقاط ، فتحقق من منشور المدونة الأخير هذا من Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from-points.html

& # 8211 & # 160DPS المكانية
4 مايو 2015 الساعة 16:29

لا. قصدت تحويلها إلى أنواع هندسية لاستخدامها في الاستعلامات المكانية. يبدو أنه تم الرد على سؤالي على الرغم من ذلك شكرًا لك!

لدي جدول به أكثر من 800000 سجل بما في ذلك عمود العرض والعمود الطويل. لم يقم مصدر البيانات بإنشاء أشكال هندسية ، لذلك كنت أبحث عن كيفية القيام بذلك. أعلم أن هناك ST_MakePoint (x ، y ، SRID) لكن جميع الوثائق والخيوط الأخرى توضح كيفية إنشاء نقاط مفردة. كيف أقوم بإنشاء نوع الشكل الهندسي باستخدام هذه الأعمدة؟

تقصد إنشاء خطوط من هذه النقاط؟ لأن النقاط هندسية تمامًا مثل الخطوط والمضلعات. لذلك إذا كنت تبحث عن إنشاء سطور من هذه النقاط ، فتحقق من منشور المدونة الأخير هذا من Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from-points.html

& # 8211 & # 160DPS المكانية
4 مايو 2015 الساعة 16:29

لا. قصدت تحويلها إلى أنواع هندسية لاستخدامها في الاستعلامات المكانية. يبدو أنه تم الرد على سؤالي على الرغم من ذلك شكرًا لك!

لدي جدول به أكثر من 800000 سجل بما في ذلك عمود العرض والعمود الطويل. لم يقم مصدر البيانات بإنشاء أشكال هندسية ، لذلك كنت أبحث عن كيفية القيام بذلك. أعلم أن هناك ST_MakePoint (x ، y ، SRID) لكن جميع الوثائق والخيوط الأخرى توضح كيفية إنشاء نقاط مفردة. كيف أقوم بإنشاء نوع الشكل الهندسي باستخدام هذه الأعمدة؟

لدي جدول به أكثر من 800000 سجل بما في ذلك عمود العرض والعمود الطويل. لم يقم مصدر البيانات بإنشاء أشكال هندسية ، لذلك كنت أبحث عن كيفية القيام بذلك. أعلم أن هناك ST_MakePoint (x ، y ، SRID) لكن جميع الوثائق والخيوط الأخرى توضح كيفية إنشاء نقاط مفردة. كيف أقوم بإنشاء نوع الشكل الهندسي باستخدام هذه الأعمدة؟

تقصد إنشاء خطوط من هذه النقاط؟ لأن النقاط هندسية تمامًا مثل الخطوط والمضلعات. لذلك إذا كنت تبحث عن إنشاء سطور من هذه النقاط ، فتحقق من منشور المدونة الأخير هذا من Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from-points.html

& # 8211 & # 160DPS المكانية
4 مايو 2015 الساعة 16:29

لا. قصدت تحويلها إلى أنواع هندسية لاستخدامها في الاستعلامات المكانية. يبدو أنه تم الرد على سؤالي على الرغم من ذلك شكرًا لك!

تقصد إنشاء خطوط من هذه النقاط؟ لأن النقاط هندسية تمامًا مثل الخطوط والمضلعات. لذلك إذا كنت تبحث عن إنشاء سطور من هذه النقاط ، فتحقق من منشور المدونة الأخير هذا من Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from-points.html

& # 8211 & # 160DPS المكانية
4 مايو 2015 الساعة 16:29

لا. قصدت تحويلها إلى أنواع هندسية لاستخدامها في الاستعلامات المكانية. يبدو أنه تم الرد على سؤالي على الرغم من ذلك ، شكرًا لك!

تقصد إنشاء خطوط من هذه النقاط؟ لأن النقاط هندسية تمامًا مثل الخطوط والمضلعات. لذلك إذا كنت تبحث عن إنشاء سطور من هذه النقاط ، فتحقق من منشور المدونة الأخير هذا من Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from-points.html

& # 8211 & # 160DPS المكانية
4 مايو 2015 الساعة 16:29

تقصد إنشاء خطوط من هذه النقاط؟ لأن النقاط هندسية تمامًا مثل الخطوط والمضلعات. لذلك إذا كنت تبحث عن إنشاء سطور من هذه النقاط ، فتحقق من منشور المدونة الأخير هذا من Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from-points.html

& # 8211 & # 160DPS المكانية
4 مايو 2015 الساعة 16:29

لا. قصدت تحويلها إلى أنواع هندسية لاستخدامها في الاستعلامات المكانية. يبدو أنه تم الرد على سؤالي على الرغم من ذلك شكرًا لك!

لا. قصدت تحويلها إلى أنواع هندسية لاستخدامها في الاستعلامات المكانية. يبدو أنه تم الرد على سؤالي على الرغم من ذلك شكرًا لك!


هو traducido el Manual PostGIS de Paul Ramsey للحصول على تسهيلات خاصة باستخدام los usuarios de
لينغوا كاستيلانا. Agradecería que me comunicasen las eratas y comentarios a
[البريد الإلكتروني & # 160 محمي]

ndice de contenido
دليل PostGIS. 1
1.Objetos GIS. 4
1.1.Forma CANONICA ضد ESTANDAR. 4
2. Usar el estándar OpenGIS. 5
2.1. SPATIAL_REF_SYS. 5
2.2. GEOMETRY_COLUMNS. 6
2.3 كرير طبلة خاصة. 7
3. Cargar datos GIS en la base de datos Espacial. 8
4. استرداد البيانات نظم المعلومات الجغرافية. 9
5. مؤشرات Construir. 11
5.1 مؤشرات GIST. 12
5.2 تنبيهات أوسار. 13
6. عملاء جافا (JDBC). 13
7. Referencia PostGIS. 16

PostGIS: Es una extensión al sistema de base de datos objeto-relacional PostgreSQL.
Permite el uso de objetos GIS (نظم المعلومات الجغرافية). يشمل PostGIS الفقرة
مؤشرات GiST basados ​​en R-Tree، y funciones básicas para el análisis de objetos GIS.

Esta creado por Refractions Research Inc، como un proyecto de encerción de

tecnologías de bases de datos espaciales. Esta publicado bajo licencia GNU.

Con PostGIS podemos usar todos los objetos que aparecen en la especificación OpenGIS

como puntos، lineas، polígonos، multilíneas، multipuntos، y colecciones geométricas.

Los objetos GIS soportados por PostGIS son de características simples definitionidas por
OpenGIS. Actualmente PostGIS soporta las características y el API deesentación de la
خاصة OpenGIS pero no tiene varios de los operadores de Comparación y convolución
de esta especificación.

Ejemplos de laesentación en modo texto:

بوليجون ((0 0 0،4 0 0،4 4 0،0 4 0،0 0 0)، (1 1 0،2 1 0،2 2 0،1 2 0،1 1 0))

متعددة الوحدات (0 0 0،1 2 1)
MULTILINESTRING ((0 0 0،1 1 0،1 2 1)، (2 3 1،3 2 1،5 4 1))
MULTIPOLYGON ((0 0 0،4 0 0،4 4 0،0 4 0،0 0 0)، (1 1 0،2 1 0،2 2 0،1 2 0،1 1 0))، (( -

1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))

التجميع الهندسي (نقطة (2 3 9) ، خطوط ((2 3 4،3 4 5))

En los ejemplos se pueden ver características con Coordenadas de 2D y 3D (Ambas son
تصريح من PostGIS). Podemos usar las funciones force_2d () y force_3d () para convertir
una característica a 3d o 2d.

1.1.Forma CANONICA ضد ESTANDAR.

يحدد برنامج OpenGIS أشكالًا من تمثيل البيانات الشخصية:

1. (WKT) نص معروف جيداً como los ejemplos anteriores.
2. (WKB) ثنائي معروف جيدًا.

Las dos Formas guardan Información del Tipo de objeto y sus Coordenadas.

Además la especificación OpenGIS Requiere que los objetos incluyan el identificador del
نظام المرجع الخاص (SRID).
خاصة في قاعدة البيانات.
إيجيمبلو:

أدخل في قاعدة البيانات المكانية (THE_GEOM ، THE_NAME)
القيم (GeometryFromText ('POINT (-126.4 45.32)'، 312)، 'Un Lugar')

La Función GeometryFromText يتطلب رقم SRID.
En PostgreSQL tenemos laesentación en forma canónica، es unaesentación en

مودو تيكستو. ممثل Esta es distinta al estándar openGIS.
ديفيرينسياس:

Ilustración 1. اختلافات التمثيل في PostgreSQL و OpenGIS.

2. Usar el estándar OpenGIS.

Las especificación para SQL de características simples de OpenGIS تحديد نصائح للأغراض
GIS Estándar ، los cuales son manipulados por funciones ، y un conjunto de tablas de meta-
داتوس.

Hay 2 tablas de meta-datos en la especificación OpenGIS:

Contiene un identificador numérico y una descripción textual de el sistema de Coordenadas
اسبسيال دي لا أساس دي داتوس.
كومو حد ذاته تعريف الطبلة:

إنشاء تالبي SPATIAL_REF_SYS (

SRID INTEGER NOT NULL PRIMARY KEY،
AUTH_NAME VARCHAR (256) ،
AUTH_SRID INTEGER ،
SRTEXT VARCHAR (2048) ،
PROJ4TEXT VARCHAR (2048)
)

لاس كولوداس دي لاس تابلاس سون لا سيجوينتس:

SRID: Valor entero que identifica el sistema de Referencia espacial.

AUTH_NAME: El nombre del estándar para el sistema de Referencia. بور

AUTH_SRID: El identificador según el estándar AUTH_NAME. En el

ejemplo الأمامي هو الجزء الأمامي من EPSG.
SRTEXT: نص أونا معروف جيدًا
إحالة خاصة. Ejemplo: WKT الفقرة SRS.

الممثل عن النظام دي

PROJCS ["NAD83 / UTM Zone 10N" ،
GEOGCS ["NAD83" ، DATUM ["North_American_Datum_1983" ،
SPHEROID ["GRS 1980"، 6378137،298.257222101]] ،
PRIMEM [“Greenwich”، 0]، UNIT [“Degree”، 0.0174532925199433]
],
PROJECTION ["Transverse_Mercator"] ،
PARAMETER ["latitude_of_origin" ، 0] ،
المعامل ["central_meridian" ، - 123] ،
المعلمة [“scale_factor”، 0.9996]،
المعامل ["false_easting" ، 500000] ،

تمثل الفقرة una lista de las WKT de EPSG ir a
http://www.opengis.org/techno/interop/EPSG2WKT.TXT.

PROJ4TEXT: Proj4 es una librería que usa PostGIS para transformar
المنسوجات. Esta columna contiene una cadena con Definición de las
تنسيق Proj4 للغة SRID dado.

+ مشروع = utm + منطقة = 10 + ellps = clrk66 + مسند = NAD27 + وحدات = م

إنشاء جدول GEOMETRY_COLUMNS (
F_TABLE_CATALOG VARCHAR (256) ليس NULL ،
F_TABLE_SCHEMA VARCHAR (256) ليس NULL ،
F_TABLE_NAME VARCHAR (256) ليس NULL ،

F_GEOMETRY_COLUMN VARCHAR (256) ليس فارغًا ،
COORD_DIMENSION INTEGER ليست فارغة ،
SRID INTEGER ليس فارغًا ،
نوع فاركار (30) غير فارغ

ديسكريبسيون دي كادا أونا دي لاس عمود:

إجمالي المتميز
كولومنا جيوميتريكا.

la tabla de características que contiene la

Nombre de la columna geométrica en la tabla de características.

Dimensión espacial de la Columna (2D o 3D).

يرجى الرجوع إلى المرجع SPATIAL_REF_SYS.

تيبو
خاص. نقطة ، خطوط ، مضلع ،
نقطة متعددة ، مجموعة هندسية. الفقرة غير متغايرة
debo usar el tipo هندسة.

2.3 كرير طبلة خاصة

الفقرة كرير أونا الطبلة مع داتوس إسبسياليس رياليزاموس دوس باسو:

1. Creamos una tabla no espacial.

Ejemplo: CREATE TABLE CALLES_GEOM (ID int4، NAME varchar (25))

كولومنا (كامبو)
AddGeometryColumn de OpenGIS.

Ejemplo: SELECT AddGeometryColum ('calles_db'، 'calles_geom'، 'geom'، 423، 'LINESTRING'، 2)

Ejemplos de Creación de Tablas con Columnas geométricas:

1) إنشاء مخططات الجدول (PARQUE_ID int4 ، PARQUE_NOMBRE varchar (128) ، PARQUE_FECHA

تاريخ)
2) حدد AddGeometryColumn ('parque_db'، 'parque'، 'parque_geom'، 128، 'MULTIPOLYGON'، 2)

الأسماء: El tipo de dato espacial es genérico (GEOMETRY).

1) إنشاء مكالمات الجدول (CALLE_ID int4 ، CALLE_NOMBRE varchar (128))
2) حدد AddGeometryColumn ('calles_db'، 'calles'، 'calles_geom'، - 1، 'GEOMETRY'، 3)

3. Cargar datos GIS en la base de datos Espacial.

Hay dos formas de cargar datos en las tablas de nuestra base de datos. Usando el lenguaje

SQL o usando un cargador de archivos de figuras.

Si podemos convertir los datos que vamos ha insertar en unesentation textual.
Usar el formato SQL es una manera sencilla de insertar los datos en PostGIS.
Podemos crear un archivo de texto lleno de sentencias INSERT y cargarlo con
يخدع SQL مراقب.
إيجيمبلو:

يبدأ
أدخل في CALLES_GEOM (ID ، GEOM ، NAME) VALUES (1 ، GeometryFromText
("LINESTRING (191232 243118،191108 243242)" ، - 1) ، "طريق جيف")
أدخل في CALLES_GEOM (ID ، GEOM ، NAME) VALUES (1 ، GeometryFromText
("LINESTRING (189141 244158،189265 244817)" ، - 1) ، "طريق جوردي")
أدخل في CALLES_GEOM (ID ، GEOM ، NAME) VALUES (1 ، GeometryFromText
("LINESTRING (192783 228138 ، 192612 229814)" ، - 1) ، "شارع بول")
أدخل في CALLES_GEOM (ID ، GEOM ، NAME) VALUES (1 ، GeometryFromText
('LINESTRING (189412 252431،189631 259122)'، - 1)، 'Graeme Ave')
أدخل في CALLES_GEOM (ID ، GEOM ، NAME) VALUES (1 ، GeometryFromText
("LINESTRING (190131 224148،190871 228134)" ، - 1) ، "Phil Tce")

أدخل في CALLES_GEOM (ID ، GEOM ، NAME) VALUES (1 ، GeometryFromText
("LINESTRING (198231 263418،198213 268322)" ، - 1) ، "ديف كريس")
نهاية

El archivo puede cargar en la base de datos usando "psql":
psql -d [قاعدة البيانات] -f calles.sql

El Cargador de datos “shp2pgsql” convierte archivos de figuras ESRI a SQL para
su inserción en una base de datos PostGIS / PostgreSQL. El cargador tiene varios
طرق العمل التي تم تنفيذها


مفتوح المصدر GIS:

نظم المعلومات الجغرافية مفتوحة المصدر (GIS). هناك عدد كبير من تطبيقات وأدوات وبيانات نظم المعلومات الجغرافية لدعم رسم خرائط بيانات الأرض (وأحيانًا الكواكب الأخرى).

دروس YoLinux ذات الصلة:

تتخذ أنظمة رسم الخرائط الرقمية أشكالًا مختلفة لتوفير حل لتطبيقات Uber و Lyft لإظهار الموقع ، وتطبيقات GPS لإظهار الموقع والاتجاه ، وتطبيقات الهندسة المدنية للمساعدة في بناء الطرق والجسور ، وتخطيط الرحلات الجوية ، وإدارة استخدام الأراضي (الزراعة) ، عرض بيانات الأرصاد الجوية وعرض البيانات العلمية ، على سبيل المثال لا الحصر. نشأت مكونات أنظمة المعلومات الجغرافية من الأبحاث التعليمية والحكومية ، وبالتالي هناك حضور قوي مفتوح المصدر.

يمكن تصنيفها إلى تطبيقات تصور الخرائط ثنائية الأبعاد أو ثلاثية الأبعاد وتطبيقات الويب ذات المكونات الأمامية والخلفية. عادة ما تأخذ تطبيقات نظم المعلومات الجغرافية شكل نظام برنامج خادم العميل بدافع الضرورة. عنصر الخادم مطلوب بسبب الحجم الهائل للبيانات (الصور ، الارتفاع ، المتجه ، البيانات العلمية ، إلخ) التي يجب أن تكون موجودة على حسابات ذات موارد كافية. عنصر العميل ضروري بسبب الحاجة إلى التنقل (نظام تحديد المواقع العالمي والتوجيه) وإمكانية العرض (ثنائي الأبعاد أو ثلاثي الأبعاد) وإذا لزم الأمر ، مدمج في الجهاز.


PostGis: الهندسة من نص UTM - نظم المعلومات الجغرافية

من الشائع جدًا وجود بيانات يكون فيها الإحداثي "جغرافيًا" أو "خط عرض / خط طول".

على عكس الإحداثيات في Mercator أو UTM أو Stateplane ، فإن الإحداثيات الجغرافية هي لا إحداثيات ديكارتية. لا تمثل الإحداثيات الجغرافية مسافة خطية من أصل كما تم رسمها على مستوى. بدلا من ذلك ، هذه إحداثيات كروية وصف الإحداثيات الزاوية على الكرة الأرضية. في الإحداثيات الكروية ، يتم تحديد النقطة بزاوية الدوران من خط الطول المرجعي (خط الطول) ، والزاوية من خط الاستواء (خط العرض).

يمكنك التعامل مع الإحداثيات الجغرافية على أنها إحداثيات ديكارتية تقريبية والاستمرار في إجراء الحسابات المكانية. However, measurements of distance, length and area will be nonsensical. Since spherical coordinates measure angular distance, the units are in "degrees." Further, the approximate results from indexes and true/false tests like intersects and contains can become terribly wrong. The distance between points get larger as problem areas like the poles or the international dateline are approached.

For example, here are the coordinates of Los Angeles and Paris.

The following calculates the distance between Los Angeles and Paris using the standard PostGIS Cartesian ST_Distance_(geometry, geometry). Note that the SRID of 4326 declares a geographic spatial reference system.

آها! 121! But, what does that mean?

The units for spatial reference 4326 are degrees. So our answer is 121 degrees. But (again), what does that mean?

On a sphere, the size of one "degree square" is quite variable, becoming smaller as you move away from the equator. Think of the meridians (vertical lines) on the globe getting closer to each other as you go towards the poles. So, a distance of 121 degrees doesn't mean anything. It is a nonsense number.

In order to calculate a meaningful distance, we must treat geographic coordinates not as approximate Cartesian coordinates but rather as true spherical coordinates. We must measure the distances between points as true paths over a sphere -- a portion of a great circle.

Starting with version 1.5, PostGIS provides this functionality through the geography type.

Different spatial databases have different approaches for "handling geographics"

  • Oracle attempts to paper over the differences by transparently doing geographic calculations when the SRID is geographic.
  • SQL Server uses two spatial types, "STGeometry" for Cartesian data and "STGeography" for geographics.
  • Informix Spatial is a pure Cartesian extension to Informix, while Informix Geodetic is a pure geographic extension.
  • Similar to SQL Server, PostGIS uses two types, "geometry" and "geography".

Using the geography instead of geometry type, let's try again to measure the distance between Los Angeles and Paris. Instead of ST_GeometryFromText (text), we will use ST_GeographyFromText (text).

A big number! All return values from geography calculations are in meters, so our answer is 9124km.

Older versions of PostGIS supported very basic calculations over the sphere using the ST_Distance_Spheroid (point, point, measurement)` function. However, ST_Distance_Spheroid is substantially limited. The function only works on points and provides no support for indexing across the poles or international dateline.

The need to support non-point geometries becomes very clear when posing a question like "How close will a flight from Los Angeles to Paris come to Iceland?"

Working with geographic coordinates on a Cartesian plane (the purple line) yields a جدا wrong answer indeed! Using great circle routes (the red lines) gives the right answer. If we convert our LAX-CDG flight into a line string and calculate the distance to a point in Iceland using geography we'll get the right answer (recall) in meters.

So the closest approach to Iceland (as measured from its international airport) on the LAX-CDG route is a relatively small 502km.

The Cartesian approach to handling geographic coordinates breaks down entirely for features that cross the international dateline. The shortest great-circle route from Los Angeles to Tokyo crosses the Pacific Ocean. The shortest Cartesian route crosses the Atlantic and Indian Oceans.

In order to load geometry data into a geography table, the geometry first needs to be projected into EPSG:4326 (longitude/latitude), then it needs to be changed into geography. The ST_Transform (geometry,srid)` function converts coordinates to geographics and the Geography (geometry) function "casts" them from geometry to geography.

Building a spatial index on a geography table is exactly the same as for geometry:

The difference is under the covers: the geography index will correctly handle queries that cover the poles or the international date-line, while the geometry one will not.

There are only a small number of native functions for the geography type(postGIS 2.5):

    - Returns the area of the surface if it is a Polygon or MultiPolygon. For geometry, a 2D Cartesian area is determined with units specified by the SRID. For geography, area is determined on a curved surface with units in square meters. - Return the Well-Known Binary (WKB) representation of the geometry/geography without SRID meta data. - Return the Well-Known Text (WKT) representation of the geometry with SRID meta data. - Return the geometry as a GML version 2 or 3 element. - Return the geometry as a GeoJSON element. - Return the geometry as a KML element. Several variants. Default version=2, default maxdecimaldigits=15 - Returns a Geometry in SVG path data given a geometry or geography object. - Return the Well-Known Text (WKT) representation of the geometry/geography without SRID metadata. - Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on pointA to pointB. - (T)Returns a geometry covering all points within a given distancefrom the input geometry. - Returns the geometric center of a geometry. - Returns 1 (TRUE) if no point in Geometry/Geography A is outside Geometry/Geography B - Returns 1 (TRUE) if no point in Geometry B is outside Geometry A - Returns true if the geometries are within the specified distance of one another. For geometry units are in those of spatial reference and for geography units are in meters and measurement is defaulted to use_spheroid=true (measure around spheroid), for faster check, use_spheroid=false to measure along sphere. - For geometry type returns the 2D Cartesian distance between two geometries in projected units (based on spatial reference system). بالنسبة إلى الإعدادات الافتراضية لنوع الجغرافيا ، يتم إرجاع الحد الأدنى للمسافة الجيوديسية بين منطقتين جغرافيتين بالأمتار. - Return a specified geography value from Well-Known Text representation or extended (WKT). - Creates a geography instance from a Well-Known Binary geometry representation (WKB) or extended Well Known Binary (EWKB). - Return a specified geography value from Well-Known Text representation or extended (WKT) - EWKT. - Returns TRUE if the coordinates and coordinate order geometry/geography A are the same as the coordinates and coordinate order of geometry/geography B. - (T)Returns a geometry that represents the shared portion of geomA and geomB. - Returns TRUE if the Geometries/Geography "spatially intersect in 2D" - (share any portion of space) and FALSE if they don't (they are Disjoint). For geography -- tolerance is 0.00001 meters (so any points that close are considered to intersect) - Returns the 2D length of the geometry if it is a LineString or MultiLineString. geometry are in units of spatial reference and geography are in meters (default spheroid) - Return the length measurement of the boundary of an ST_Surface or ST_MultiSurface geometry or geography. (Polygon, MultiPolygon). geometry measurement is in units of spatial reference and geography is in meters. - Returns a POINT projected from a start point using a distance in meters and bearing (azimuth) in radians. - Return a modified geometry/geography having no segment longer than the given distance. - Returns a text summary of the contents of the geometry. - Returns the 2D distance between A and B. - Returns TRUE if A's 2D bounding box intersects B's 2D bounding box.

Creating a Geography Table

The SQL for creating a new table with a geography column is much like that for creating a geometry table. However, geography includes the ability to specify the object type directly at the time of table creation. على سبيل المثال:

In the table definition, the GEOGRAPHY(Point) specifies our airport data type as points. The new geography fields don't get registered in the geometry_columns view. Instead, they are registered in a view called geography_columns .

Some columns were omitted from the above output.

While the basic functions for geography types can handle many use cases, there are times when you might need access to other functions only supported by the geometry type. Fortunately, you can convert objects back and forth from geography to geometry.

The PostgreSQL syntax convention for casting is to append ::typename to the end of the value you wish to cast. So, 2::text with convert a numeric two to a text string '2'. And 'POINT(0 0)'::geometry will convert the text representation of point into a geometry point.

The ST_X_(point) function only supports the geometry type. How can we read the X coordinate from our geographies?

By appending ::geometry to our geography value, we convert the object to a geometry with an SRID of 4326. From there we can use as many geometry functions as strike our fancy. But, remember -- now that our object is a geometry, the coordinates will be interpretted as Cartesian coordinates, not spherical ones.

Geographics are universally accepted coordinates -- everyone understands what latitude/longitude mean, but very few people understand what UTM coordinates mean. Why not use geography all the time?

  • First, as noted earlier, there are far fewer functions available (right now) that directly support the geography type. You may spend a lot of time working around geography type limitations.
  • Second, the calculations on a sphere are computationally far more expensive than Cartesian calculations. For example, the Cartesian formula for distance (Pythagoras) involves one call to sqrt(). The spherical formula for distance (Haversine) involves two sqrt() calls, an arctan() call, four sin() calls and two cos() calls. Trigonometric functions are very costly, and spherical calculations involve a lot of them.

If your data is geographically compact (contained within a state, county or city), use the geometry type with a Cartesian projection that makes sense with your data. See the http://spatialreference.org site and type in the name of your region for a selection of possible reference systems.

If you need to measure distance with a dataset that is geographically dispersed (covering much of the world), use the geography type. The application complexity you save by working in geography will offset any performance issues. And casting to geometry can offset most functionality limitations.

  • The buffer and intersection functions are actually wrappers on top of a cast to geometry, and are not carried out natively in spherical coordinates. As a result, they may fail to return correct results for objects with very large extents that cannot be cleanly converted to a planar representation.
  • For example, the ST_Buffer (geography,distance) function transforms the geography object into a "best" projection, buffers it, and then transforms it back to geographics. If there is no "best" projection (the object is too large), the operation can fail or return a malformed buffer.

Visualizing Geography Data

An easy way to view correctly the shortest path (line) between global airports is accessing the Great Circle Mapper website.

But, to vizualize correctly this global data using a GIS is another history. You must be alert for some details, principally related to the projection used.

Add some basemap (QuickMapServices QGIS Plugin) to the view to help you to visualize the airports data.

The construction of the linear feature that presents the LAX-CDG air route was performed in some steps:

  1. Two queries were used to acquire the geography features of LAX and CDG airports
  2. Casting of airport geography features to geometry type, as the spatial function ST_MakeLine (geometry, geometry) only works with geometry data and doesn't support geography data.
  3. Generation of a geometry linear feature from two geometry points features representing LAX and CDG airports.
  4. Casting of the geometry linear feature to geography linear feature.

Note that the LAX-CDG route, despite being in geography data format, presents a straight line as if the data were geometry.

This is because QGIS creates this "line" from the computational path between the two airports.

To solve this visualization "problem", it is necessary to "segmentize" the line-type geographic data by vertices that represent the path drawn between airports.

In this case, we will use the ST_Segmentize spatial function (geography geog, float max_segment_length), which has support for geography data, with line segmentation in vertices with 10m spacing between them.

Be aware that this procedure works to visualize linear geography features in GIS, but it´s not a good practice to calculate the distance between these points as you can see in the results of the query below, where the calculated distance is different for each approach:

North Korea's Hwasong-14 intercontinental ballistic missile has an estimated maximum range of 10,000 km.

Let´s assume a buffer built from Pyongyang City(North Korea Capital).

We can view the maximum range of this missile using the SQL instruction below:

But, as you can see in the figure above, any planimetric projection, (3857, for example) doesn't support the geography data representation.

To solve this, we have to change the view projection to SRID 3571: WGS 84 / North Pole LAEA Bering Sea

If we try to make a buffer from Pyongyang City using geometry data, the wrong choice, we have the result below:

As we are working with geometry data, the buffer radius parameters must be inputed as decimal degrees. In this case, at this latitude, 10,000 km is around 125 decimal degrees.

ST_Distance (geometry, geometry): For geometry type Returns the 2-dimensional Cartesian minimum distance (based on spatial ref) between two geometries in projected units. For geography type defaults to return spheroidal minimum distance between two geographies in meters.

ST_GeographyFromText (text): Returns a specified geography value from Well-Known Text representation or extended (WKT).

ST_Transform (geometry, srid): Returns a new geometry with its coordinates transformed to the SRID referenced by the integer parameter.

ST_X (point): Returns the X coordinate of the point, or NULL if not available. Input must be a point.


Final Answer

View attached explanation and answer. Let me know if you have any questions.please find the attached files

UAVs
Student’s Name
University Affiliation
Course Name and Number
Instructor’s Name
Assignment Due Date

2
An unmanned aerial vehicle (UAV) is an aircraft known as a drone without a pilot on

board (Molko, 2012). They are usually equipped with live feed cameras with high definition and
radar, all valuable for the consistent surveillance of a particular area. They are smaller than
airplanes and, therefore, harder to spot. Law enforcement uses their live-feed cameras to provide
management and provide evidence during a crime investigation. Drones have various other
capabilities, such as interception technology with the cellphone, to provide information such as
location and activity in a specific area. Drones are sometimes fitted with lethal weapons
whenever they fly over a crime-infested place or track a dangerous criminal.
Various agencies use drones, including the law enforcement agency, to chase suspects,
map, and survey the cities. According to Herwitz et al. (2004), Agricultural agencies also use
drones to collect data on crops covering an extensive area. Construction agencies also use drones
to map areas under construction to monitor progress and pick out situations and problems that
might cause accidents. The use of drones brings the aspect of privacy and security to individuals
and a state in general.
In 2012, the Federal Aviation Administration (FAA) Modernization and Reform Act
advocated for the increase of UAVs in the airspace system of America (Thompson, 2013).
However, several other amendments have occurred, and now the fourth Amendment approves a
license for the flight of UAVs. According to the National Conference of State Legislators, over
twenty states have passed legislation on the flying of drones (Hudson Jr, 2015). Most states are
considering the laws to safeguard individual privacy. Tennessee and Idaho have forbidden using
drones over private property unless carrying out manned investigations to collect
evidence. These States also permit individuals to sue agencies breaking these laws. In my
opinion, the need for a search warrant depends on the case at hand. A search warrant is needed

when flying a drone over private property to identify criminal activities. One of the human rights
of an American citizen is the right to privacy. Without a warrant, it will violate that right,
primarily if no evidence is found on the property. Therefore, a warranty would be necessary for
such a scenario. However, if law enforcement must search a suspect's property, then a warrant
should not be essentia.


دعم الإسقاطات¶

Coordinate reference systems (CRS) are encapsulated by QgsCoordinateReferenceSystem class. يمكن إنشاء مثيلات هذه الفئة بعدة طرق مختلفة:

يستخدم QGIS ثلاثة معرفات مختلفة لكل نظام مرجعي:

  • PostgisCrsId — IDs used within PostGIS databases.
  • InternalCrsId — IDs internally used in QGIS database.
  • EpsgCrsId — IDs assigned by the EPSG organization

إذا لم يتم تحديد خلاف ذلك في المعلمة الثانية ، يتم استخدام PostGIS SRID افتراضيًا.

تحديد CRS بنصها المعروف (WKT)

create invalid CRS and then use one of the create*() functions to initialize it. في المثال التالي نستخدم سلسلة Proj4 لتهيئة الإسقاط

It’s wise to check whether creation (i.e. lookup in the database) of the CRS has been successful: isValid() must return True .

لاحظ أنه لتهيئة أنظمة الإسناد المكاني ، يحتاج QGIS إلى البحث عن القيم المناسبة في قاعدة البيانات الداخلية srs.db. Thus in case you create an independent application you need to set paths correctly with QgsApplication.setPrefixPath() otherwise it will fail to find the database. إذا كنت تقوم بتشغيل الأوامر من وحدة تحكم QGIS python أو تقوم بتطوير مكون إضافي ، فأنت لا تهتم: تم إعداد كل شيء بالفعل لك.

الوصول إلى معلومات نظام الإسناد المكاني


شاهد الفيديو: PostgreSQL + PostGIS. Basics (شهر اكتوبر 2021).