amir salkhori
amir salkhori
خواندن ۱ دقیقه·۴ سال پیش

طریقه جستجو در polygon

سلام به دوستان گلم در پست قبلی طریقه ساخت یکی از نوع های geometry و توضیح دادم که به چه صورت ما میتونیم یه فیلد از نوع polygon داشته باشیم.

در این پست قصد دارم تا به نحوه جستجو در Polygon بپردازم که به چه صورت ما میتونیم یک نقطه را در polygon خود جستجو کنیم. postgis دارای متدهای مختلفی هست که شما میتونید وارد سایت رسمی آن شوید و متدهای مختلف آن را مشاهده کنید. و براساس نوع جستجوی که میخواید انجام دهید متد مناسب آن را انتخاب کنید. مثالی که اینجا میخوام بزنم در doctrine orm هست. من در این مثال قصد دارم ُ ببینم نقطه ای که وارد میشود در محیط polygon قرار دارد یا نه؟

برای این کار از متد intersect استفاده میکنم.

خیلی ساده اینکار انجام میشه. فقط کافیه متدهای مربوطه را فراخوانی کنیم به صورت زیر بنویسیم. st_intersects(sp_makePoint(:lat, :lng) , z.area) = true) lat و long ورودی ها هستن که ما از سمت کاربر دریافت میکنیم area: فیلد polygon ما هست. public function searchPostalCodePolygon( $zipLat, $ziplong) { return $this->createQueryBuilder('d') ->select([ 'd', ]) ->andWhere(&quot (st_intersects(sp_makePoint(:lat, :long) , d.area) = true)&quot) ->setParameter('lat', $zipLat) ->setParameter('long', $ziplng) ->getQuery() ->getResult(); }

به همین سادگی میتوانیم درون یک polygon جستجو کنیم

ممنون که تا اینجا همراهم بودید و امیدوارم که مفید واقع شده باشد.

با تشکر امیر سلخوری هستم توسعه دهنده.
01000001011011010110100101110010001000000101001101100001011011000110101101101000011011110111001001101001

امیر سلخوریamir salkhoripolygongeometrysymfony
01000001011011010110100101110010001000000101001101100001011011000110101101101000011011110111001001101001
شاید از این پست‌ها خوشتان بیاید