أكثر

كيفية العثور على أقرب نقطة على الخط من نقطة تطويق في خادم SQL

كيفية العثور على أقرب نقطة على الخط من نقطة تطويق في خادم SQL


أريد معرفة أقرب نقطة على شبكة الطرق الخاصة بي وهي عبارة عن سلسلة متعددة الأسطر من نقطة ذات قيمة خط طول.

لقد حاولت العثور على الكود أدناه لإيجاد خط مسافة عازلة من نقطة.

إعلان @ a الهندسة ؛ SETa = الهندسة :: نقطة (73.0127941495،19.26388944035،4326) ؛ حدد أعلى 1 * من المسارات حيث geom.STIntersects (@ a.STBuffer (0.002)) = طلب واحد بواسطة @ a.STDistance (geom) ؛

أريد حلاً لإيجاد أقرب نقطة على الخط من نقطة متقاربة


هذا السؤال عمره شهرين ، ولكن في SQL Server 2012 ، يمكنك تجربة واستخدام امتداد أقصر خط إلى طريقة.

مثال (لم يتم اختباره):

إعلان @ a الهندسة ؛ SETa = الهندسة :: STPointFromText ('POINT (73.0127941495 19.26388944035)' ، 4326) ؛ حدد TOP (1) * ، geom.ShortestLineTo (a) .STStartPoint () كأقرب نقطة_على الخط من المسارات حيث geom.STDistance (a) ليست NULL ORDER BY geom.STDistance (a) ؛

يجب أن يعيد هذا أقرب سجل من الجدول طرق مرتكز على geom، جنبًا إلى جنب مع نقطة الظل على geom ل طالما لديهم نفس SRID.


شاهد الفيديو: DBMonitoring u0026 DBCC CHEKDB SqlServer. مراقبة قاعدة البيانات