اعلانات انجمن


ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نزدیکترین خط به نقطه
نویسنده پیام
mn_niazi آفلاین
کاربر عادی
*

ارسال‌ها: 7
تاریخ عضویت: تير ۱۳۹۳
اعتبار: 0
ارسال: #1
نزدیکترین خط به نقطه
سلام
یک لایه از نوع line دارم و میخواه نزدیکترین خط به یک نقطه که به صورت دستی وارد میشه رو با spacial با استفاده از بانک postgresql بدست بیارم.
یه query بدست آوردم ولی خطا میده اگر لطف کنید کمک کنید ممنون میشم. 
این اون query هست
SELECT name,ST_Distance(r.geom,ST_SetSRID(ST_MakePoint(lon, lat),4326)) FROM roads r ORDER BY 2 ASC LIMIT 1;
lon , lat مربوط به یک نقطه میباشند
۲۸-۴-۱۳۹۳ ۱۰:۳۶ عصر
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
علوی آنلاین
ناظر انجمن
******

ارسال‌ها: 495
تاریخ عضویت: مرد ۱۳۹۲
اعتبار: 246
ارسال: #2
RE: نزدیکترین خط به نقطه
1- یک بار به جای اون lon و lat مقدار بگذارید ببینید کار میکنه؟
2- دیتای شما در سیستم WGS84 هست که گذاشتین 4326؟
3- مطمئنید فیلد مکانی شما geom هست؟

ضمن این که این کوئری خط رو به شما نمیده. فاصله نزدیکترین خط رو به شما میده، نه خود خط رو.
 

دو اصل اساسی انجمن:
1- احترام به یکدیگر
2- درصورت نقل مطلب، ذکر منبع و لینک به اصل مطلب

برای تقدیر و تشکر از دکمه [تصویر:  postbit_reputation.gif] در پایین هر ارسال استفاده کنید.
۲۹-۴-۱۳۹۳ ۰۲:۲۴ صبح
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
mn_niazi آفلاین
کاربر عادی
*

ارسال‌ها: 7
تاریخ عضویت: تير ۱۳۹۳
اعتبار: 0
ارسال: #3
RE: نزدیکترین خط به نقطه
سلام
من sql رو به این شکل نوشتم
SELECT r.*,ST_Distance(r.geom,ST_SetSRID(ST_MakePoint( 51.79544, 32.83006),4326)) FROM road r ORDER BY 2 ASC LIMIT 100;
نقشه ها همه wgs84 هستند ولی این خطا رو میده

ERROR:  Operation on two GEOMETRIES with different SRIDs


********** Error **********

ERROR: Operation on two GEOMETRIES with different SRIDs
SQL state: XX000

اول این که ایراد از کجاست ؟ دوم این که من میخوام نزدیکترین خط به نقطه رو در یک لایه نقشه از نوع line پیدا کنم آیا query من صحیح هست ؟
۲۹-۴-۱۳۹۳ ۰۶:۱۳ عصر
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
علوی آنلاین
ناظر انجمن
******

ارسال‌ها: 495
تاریخ عضویت: مرد ۱۳۹۲
اعتبار: 246
ارسال: #4
RE: نزدیکترین خط به نقطه
1. ایرادش که معلومه. SRID مخفف System Reference Id هست. یعنی دو تا ژئومتری ورودی به فانکشن ST_Distance سیستم مختصات یکسانی ندارند. به احتمال زیاد موقع وارد کردن دیتاتون به دیتابیس سیستم مختصاتی رو واسش وارد نکردین.

2- قبلا جواب دادم. پست بالا رو ببینید. این کوئری فاصله نزدیکترین خط رو میده و اسمش (در صورتی که فیلد name داشته باشین). به جای فیلد name اسم فیلد مکانی تون رو بذارین.

 

دو اصل اساسی انجمن:
1- احترام به یکدیگر
2- درصورت نقل مطلب، ذکر منبع و لینک به اصل مطلب

برای تقدیر و تشکر از دکمه [تصویر:  postbit_reputation.gif] در پایین هر ارسال استفاده کنید.
(آخرین ویرایش در این ارسال: ۳۰-۴-۱۳۹۳ ۰۸:۱۶ عصر، توسط علوی.)
۳۰-۴-۱۳۹۳ ۰۴:۴۴ صبح
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان