@tuoyuan/map-adapter-lib
Version:
地图适配器库
2 lines (1 loc) • 1.02 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function s(r,l){const a=l.length,d=!0,f=2e-10;let u=0,t,i;const e=r;t=l[0];for(var n=1;n<=a;++n){if(e.latitude==t.latitude&&e.longitude==t.longitude)return d;if(i=l[n%a],e.latitude<Math.min(t.latitude,i.latitude)||e.latitude>Math.max(t.latitude,i.latitude)){t=i;continue}if(e.latitude>Math.min(t.latitude,i.latitude)&&e.latitude<Math.max(t.latitude,i.latitude)){if(e.longitude<=Math.max(t.longitude,i.longitude)){if(t.latitude==i.latitude&&e.longitude>=Math.min(t.longitude,i.longitude))return d;if(t.longitude==i.longitude){if(t.longitude==e.longitude)return d;++u}else{var o=(e.latitude-t.latitude)*(i.longitude-t.longitude)/(i.latitude-t.latitude)+t.longitude;if(Math.abs(e.longitude-o)<f)return d;e.longitude<o&&++u}}}else if(e.latitude==i.latitude&&e.longitude<=i.longitude){const g=l[(n+1)%a];e.latitude>=Math.min(t.latitude,g.latitude)&&e.latitude<=Math.max(t.latitude,g.latitude)?++u:u+=2}t=i}return u%2!=0}exports.isPointInPolygon=s;