أكثر

كيفية التحقق مما إذا كان الخط يمر عبر نقطة مع PostGIS

كيفية التحقق مما إذا كان الخط يمر عبر نقطة مع PostGIS


لدي خط يمثل خط حافلة ومحطة تمثل محطة للحافلات

تمثل البيانات النموذجية التالية المشكلة

LINESTRING (-70.65357957000000511 -33.42323483999999922، -70.65181886999999961 -33.4232948200000024) نقطة (-70.65199072011725434 -33.42328896575632768)

تم إنشاء النقطة باستخدام طريقة Shapely interpolate.

أريد الآن اختبار ما إذا كان الخط يمر عبر محطة الحافلات.

حاولت ما يلي:

حدد ST_Intersects (ST_GeomFromText ('LINESTRING (-70.65357957000000511 -33.42323483999999922 ، -70.65181886999999961 -33.4232948200000024)') ، ST_GeomFromText ('POINT (-70.6519965 -201632254)

هذا يعودخاطئة. هل من الممكن مع PostGIS معرفة ما إذا كان الخط يتخطى النقطة؟

كحل بديل ، كنت أفكر في تخزين النقاط مؤقتًا ، لكنني آمل في الحصول على حل أكثر نظافة.


بشكل عام ، أريد أن أقوم بضم مكاني ، وربط معرف الخطوط بمحطات الحافلات.

حدد الخطوط. ogc_fid ، توقف. wkb_geometry من الخطوط ، يتوقف حيث ST_Intersects (lines.wkb_geometry ، stop.wkb_geometry)

تحديث: أدركت أن النقاط ببساطة ليست على المحك. لقد قمت بالتكبير بعيدًا جدًا وكانت النقطة بجوار الخط ، وليس على الخط. لذلك لن يعمل سوى حل مثل المخزن المؤقت.


يمكنك حل هذه المشكلة عن طريق إنشاء مخزن مؤقت من سلاسل الخطوط الخاصة بك لأنه من المحتمل أن خطوطك لا تمر عبر النقاط بدقة.

حدد النقاط. ID من النقاط ، انضم إلى خطوط ST_Intersects (Points.geom ، ST_Buffer (lines.geom ، number)) ؛

تحديث: قد يكون الحل باستخدام ST_DWithin () خيارًا أفضل (thx toJohnBarca).


لا يمكن لحساب الفاصلة العائمة تخزين كل رقم تريده. في مرحلة ما ، يجب أن تكون تقريبية. الآن ، أظن أن الخوارزمية التي حصلت عليها من ويكيبيديا تخبرك:

أنت تعرف م ، تعرف ب ، عوض الآن وتأكد من صحة المعادلة. يعمل بشكل رائع في الرياضيات. (الجذر التربيعي لـ 2) تربيع يساوي الجذر التربيعي لـ 4.

لكن تخيل الآن أنك تفعل ذلك على جهاز كمبيوتر. سيظهر الجذر التربيعي للعدد 4 بالضبط كالتالي 2 ، لأن أجهزة الكمبيوتر رائعة في الاحتفاظ بأرقام صحيحة صغيرة. ومع ذلك ، فإن جانبك الأيمن ، الجذر التربيعي لـ 2 ، سيكون قليلًا. كان عليك قطع بعض الأرقام منه ، لذا عند تربيعه ، قد يكون 1.999998 أو شيء من هذا القبيل. لاستيعاب ذلك ، تحتاج إلى التحقق من أن y تقريبًا. mx + b ، لذلك:

ثم سيتعين عليك التحقق من المربع المحيط به (اعثر على max x ، y ، min x ، y)


1 إجابة 1

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

من الأفضل التحقق من المسافة بين A & amp B ، ثم معرفة متى تكون النقطة داخل نصف القطر. على سبيل المثال ، إذا كان عرض العنصر "ب" 3 وحدات ، فتحقق مما إذا كان الخط بين "أ" و "ب" أقل من 1.5 وحدة. هذا من شأنه أن يشير إلى حدوث تصادم.

إذا كنت تستخدم محركًا ثلاثي الأبعاد مثل Unity ، فيمكنك التعامل مع هذا باستخدام المصادمات.

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


2 إجابات 2

محرر لتوفير بيئة rbitemize. في هذه البيئة ، سيعطي العنصر زر اختيار بقواعد أعلى وأسفل ، مع الوسيطة الاختيارية لـ item التي تحدد عدد الأسطر في العنصر (إذا كان أكبر من 1).

أقوم بتسمية الماكرو الداخلي rb ، بالإشارة إلى الكود الخاص بي من أجل "زر اختيار" عند كيفية كتابة زر اختيار؟

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


4 إجابات 4

بغض النظر عن أي تحسينات أخرى تقوم بإجرائها ، تأكد من اختبار التأثير على أوقات التنفيذ المكاني لتمكين تتبع العلامات 6532 و 6533 و 6534 (بدء التشغيل فقط). هذه تشغيل التطبيقات المكانية للكود الأصلي. مطلوب SQL Server 2012 Service Pack 3 أو SQL Server 2014 Service Pack 2 (مقال دعم Microsoft). يتم تشغيل الترجمة الأصلية بشكل افتراضي من SQL Server 2016.

بالنسبة لـ STDistance ، علامة التتبع المهمة هي 6533. في اختبار بسيط ، أدى هذا إلى تحسين وقت التنفيذ من 2100 مللي ثانية إلى 150 مللي ثانية بدون استخدام فهرس مكاني على مثيل SQL Server 2012 للكمبيوتر المحمول.

بيانات الاختبار

استعلام اختبار

متوسط ​​أوقات التنفيذ: 2100 مللي ثانية (إيقاف إشارة التتبع) 150 مللي ثانية (تشغيل علامة التتبع).

يريد الاستعلام في السؤال العثور على أزواج من النقاط أكثر أكثر من 200 متر. مثل هذا النوع من الاستعلام غير مدعوم من قبل الفهارس المكانية في SQL Server.

طرق الجغرافيا المدعومة بالفهارس المكانية

في ظل ظروف معينة ، تدعم الفهارس المكانية الطرق الجغرافية التالية: STIntersects () و STEquals () و STDistance (). لكي يتم دعمها بواسطة فهرس مكاني ، يجب استخدام هذه الطرق ضمن جملة WHERE للاستعلام ، ويجب أن تحدث ضمن مسند من النموذج العام التالي:

لإرجاع نتيجة غير فارغة ، يجب أن يكون للجغرافيا 1 والجغرافيا 2 نفس معرف المرجع المكاني (SRID). خلاف ذلك ، تقوم الطريقة بإرجاع NULL.

تدعم الفهارس المكانية الأشكال الأصلية التالية:

كما ترى ، لا يحتوي الاستعلام في السؤال على أحد النماذج المدعومة.

هذا هو سبب ظهور رسالة الخطأ هذه "السبب: لا تدعم الفهارس المكانية المقارنة المتوفرة في المسند" عندما تحاول فرض استخدام الفهرس.

يمكنك محاولة إعادة كتابة الاستعلام لإنشاء منتج ديكارتي مع جميع مجموعات النقاط و "طرح" منه مجموعة من النقاط التي تقع في نطاق 200 متر ، لكنني أشك في أنه سيكون أكثر كفاءة ، حتى لو استخدم الفهرس.


أنشأ المؤلف ملفات رسومية صغيرة ، ونسخها إلى C: Program Files Common Files Microsoft Shared web server extensions 1x TEMPLATE IMAGES وإدراجها في تذييل الصفحة. نظرًا لأن كل WFE ينظر إلى دليل الصور الخاص به ، يمكنه التعرف ببساطة من خلال النظر إلى الصورة التي قدمها WFE للصفحة دون أي جهد. لقد كتب عن الصور بعرض 3 بكسل فقط ، لقد صنعت شيئًا أكبر يناسب أسلوب علامتنا التجارية ومن لا يعرف عنها ، لا تلاحظ ذلك. بالطبع ، إذا كنت ترغب في عرض المزيد من المعلومات ، فهذه ليست الطريقة الصحيحة ، ولكن يكفي التعرف على الخادم ببساطة ، حتى أنه يمكنك العثور على هذه المعلومات من أي كمبيوتر مستخدم. يمكن أن يكون هذا مفيدًا.

أو يمكنك إيقاف WFE لفترة من الوقت ، واختبار جزء الويب الخاص بك ، وتشغيله مرة أخرى والعكس صحيح.


أنواع عمليات الاحتيال في شيكات الشيكات الوهمية

تُستخدم الشيكات الوهمية في العديد من أنواع عمليات الاحتيال. وهنا بعض الأمثلة:

  • تسوق غامض. يتظاهر المحتالون بتوظيف أشخاص كمتسوقين غامضين ويخبرونهم أن مهمتهم الأولى هي تقييم بائع التجزئة الذي يبيع بطاقات الهدايا أو الحوالات المالية أو خدمة تحويل الأموال ، مثل Western Union أو MoneyGram. يحصل المتسوق على شيك يحتوي على تعليمات لإيداعه في حساب مصرفي شخصي وتحويله إلى شخص آخر. ولكن بمجرد تحويل الأموال سلكيًا ، يمكن أن يختفي الشخص الموجود على الطرف الآخر.
  • المساعدين الشخصيين. يتقدم الأشخاص عبر الإنترنت ويتم تعيينهم كمساعدين شخصيين. يحصلون على شيك ويطلب منهم استخدام الأموال لشراء بطاقات الهدايا أو شراء المعدات أو الإمدادات لعميلهم الجديد. بمجرد أن يحصل المحتالون على أرقام PIN لبطاقة الهدايا ، فإنهم يستخدمونها على الفور ، تاركين "المساعد الشخصي" بدون نقود عندما يكتشف البنك أن الشيك سيئ.
  • شارات التفاف السيارة. يُطلب من الأشخاص المهتمين بإعلانات تغليف السيارات إيداع الشيكات وإرسال الأموال إلى مُركِّبي الملصقات - غير الموجودين.
  • المطالبة بالجوائز. يتم منح "الفائزين" بمسابقة اليانصيب شيكات ويُطلب منهم إرسال أموال لتغطية الضرائب ورسوم الشحن والمناولة أو رسوم المعالجة. ولكن ليس هذا هو مدى شرعية عمل اليانصيب.
  • المدفوعات الزائدة. الأشخاص الذين يشترون شيئًا منك عبر الإنترنت "عن طريق الخطأ" يرسلون شيكًا مقابل الكثير ويطلبون منك استرداد الرصيد.

نظام الحرارية

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

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

يعتمد العدد الإجمالي للمزدوجات الحرارية المستخدمة في دوائر الكاشف الفردية على حجم مناطق الحريق ومقاومة الدائرة الإجمالية ، والتي لا تتجاوز عادةً 5 أوم. كما هو مبين في الشكل 2 ، تحتوي الدائرة على مقاومين. يقوم المقاوم المتصل عبر محطات الترحيل التابعة بامتصاص الجهد المستحث ذاتيًا للملف & # 8217 s لمنع الانحناء عبر نقاط الترحيل الحساس. تكون جهات اتصال المرحل الحساس هشة للغاية لدرجة أنها تحترق أو تلحم ، إذا كان الانحناء مسموحًا به.

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


2 أجوبة 2

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

يمكن أن يؤدي هذا إلى وجود نقطة داخل مضلع يتم التعبير عنه كجغرافيا ولكن خارجها إذا تم التعبير عنها على أنها هندسة

يستخدم المثال التالي PostGIS. يرتفع المضلع إلى خط العرض 50 ، والنقطة عند خط العرض 51.

نعم. لن تقوم الإسقاطات مطلقًا بإعادة إسقاط نقطة كانت داخل مضلع في أحد الإسقاطات لتكون خارجه في آخر - ما لم يكن هناك نوع من الخطأ في الدقة. لست متأكدًا مما تسمى هذه الخاصية في الجغرافيا ، لكنني أدركت للتو أنها ثوابت نسبية بشكل أساسي ، والتي تقول أساسًا أنه مع تمدد الوقت بالنسبة لنا ، وأنظمة الإحداثيات لدينا مضغوطة أو ممتدة ، لن يختلف أي مراقب في أي إطار معين حول الترتيب السببي للأحداث. وبالمثل ، بغض النظر عن الإسقاط الذي يعيش فيه "المراقب" ، فلن يختلف أحد بشأن النقاط الموجودة في المضلعات ، حتى لو اختلفوا حول مدى بُعد النقاط بالضبط عن حواف المضلعات ، وأشياء من هذا القبيل.

حسنًا ، باستثناء قص الأفق ، والإسقاطات غير المستمرة ، والتي قد تلقي بفتحة قرد في الطوبولوجيا.

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

لم أفكر في الآفاق أو التوقعات المتقطعة. أعتقد أنه في الفيزياء ، تحتوي الجغرافيا على تفردات حيث تقوم بعض أنظمة إحداثيات الزمان والمكان بتفكيك الأقطاب ، مثال آخر.


ما مدى سرعة انتشار COVID-19 بالقرب مني؟

كما ذكرنا سابقًا ، تتضمن مجموعة بيانات Johns Hopkins بيانات تراكمية. على سبيل المثال ، يحتوي الإدخال الخاص بـ 2 مارس 2020 على جميع الحالات التي تم تأكيدها في ذلك الوقت. لنفترض أننا أردنا معرفة المعدل الذي تم به تحديد الحالات بالقرب من موقع معين.

يتضمن TimescaleDB ميزة تسمى التجميعات المستمرة. يعيد التجميع المستمر حساب الاستعلام تلقائيًا على فترات زمنية محددة من قبل المستخدم ويحافظ على النتائج في جدول. وبالتالي ، بدلاً من قيام كل شخص بتشغيل استعلام تجميعي في كل مرة ، يمكن لقاعدة البيانات تشغيل تجميع عام بشكل دوري في الخلفية ، ويمكن للمستخدمين الاستعلام عن نتائج التجميع. يجب أن تعمل التجميعات المستمرة على تحسين أداء قاعدة البيانات وسرعة الاستعلام للحسابات الشائعة.

في حالتنا ، نريد الحفاظ على تجميع مستمر للتغيير اليومي في الحالات المؤكدة. لنلقِ نظرة على استعلام التجميع المستمر هذا:

ينشئ السطر الأول من هذا الاستعلام تجميعًا مستمرًا يسمى daily_change. ثم نختار time_bucket بفاصل يومين محسوب باستخدام حقل covid19_ts.observation_date.

في جدولنا ، سننشئ عمود الأمس واليوم ، بالإضافة إلى عمود التغيير الذي يمثل دلتا بين الاثنين.

في الظروف العادية مع وجود كميات كبيرة من البيانات ، يحسب TimescaleDB التجميعات المستمرة في الخلفية ، ولكن إذا كنت تريد رؤية النتيجة على الفور ، فيمكنك فرضها:

يمكننا تشغيل هذا التجميع المستمر باستخدام استعلام SQL بسيط:

يجب أن تبدو نتيجة هذا الاستعلام كما يلي:

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

يجب أن تبدو مخرجاتنا كما يلي:


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

يتم إجراء بحث الهاتف المحمول عبر مواقع متعددة في وقت واحد.

يتيح لك إضافة البيانات المصاحبة للحصول على نتائج أفضل.

يتم ملء العديد من النتائج تلقائيًا ولا تتضمن معلومات قيمة.

يعد البحث العكسي عن رقم الهاتف باستخدام Google أو محرك بحث ويب آخر طريقة مفيدة أخرى لتتبع أرقام الهواتف المحمولة. هذه هي أفضل طريقة للبحث في الويب ككل لمعرفة أدلة الهاتف الخلوي التي تحتوي على هذا الرقم.

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

استخدام محرك بحث للبحث عن أرقام الهواتف لا يعمل فقط مع أرقام الهواتف الخلوية ولكن أيضًا للخطوط الأرضية وأرقام الهواتف المجانية. على سبيل المثال ، يمكنك العثور على رقم 800 من خلال البحث "رقم 800" & ltcompany & GT، أو ابحث عن رقم الشركة ببحث مثل "اتصل بنا" XYZ (لرقم دعم XYZ).

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