php之判断点在多边形内的api
生活随笔
收集整理的這篇文章主要介紹了
php之判断点在多边形内的api
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、判斷點(diǎn)在多邊形內(nèi)的數(shù)學(xué)思想:以那個(gè)點(diǎn)為頂點(diǎn),作任意單向射線,如果它與多邊形交點(diǎn)個(gè)數(shù)為奇數(shù)個(gè),那么那個(gè)點(diǎn)在多邊形內(nèi),相關(guān)公式:
<?php class AreaApi{//$area是一個(gè)多邊形經(jīng)緯度集合,$lng是經(jīng)度,$lat是緯度function inArea($area,$lng,$lat){$crossings=0;for($i=0;$i<count($area);$i++){$next_poit=$i+1;if($i==(count($area)-1)){$next_poit=0;}$slope=($area[$next_poit]['lng']-$area[$i]['lng'])/($area[$next_poit]['lat']-$area[$i]['lat']);$cond1=($area[$i]['lat']<=$lat)&&($lat<$area[$next_poit]['lat']);$cond2=($area[$next_poit]['lat']<=$lat)&&($lat<$area[$i]['lat']);$above=($lng<$slope*($lat-$area[$i]['lat'])+$area[$i]['lng']);if(($cond1||$cond2)&&$above){$crossings++;}}if($crossings%2!=0){return 'yes';}else{return "no";}} }2、參考鏈接:http://blog.csdn.net/shangquan2012/article/details/51912617
轉(zhuǎn)載于:https://www.cnblogs.com/zhylioooo/p/8352617.html
總結(jié)
以上是生活随笔為你收集整理的php之判断点在多边形内的api的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 攻城锤-1重型坦克带什么军官?
- 下一篇: lombok使用基础教程