From 067ef80f14e9ee9d5a225ebbbc7d56d292d746e2 Mon Sep 17 00:00:00 2001 From: FDD Date: Sat, 13 Jan 2018 20:44:54 +0800 Subject: [PATCH] # pre re --- .travis.yml | 6 - README.md | 121 ++++++++++ assets/images/plot.jpg | Bin 0 -> 141960 bytes examples/index.html | 10 + examples/static/images/5.png | Bin 0 -> 4341 bytes src/core/PlotDraw.js | 17 +- src/geometry/Arrow/AttackArrow.js | 30 ++- src/geometry/Point/Point.js | 89 +++++++ src/geometry/Polygon/GatheringPlace.js | 17 +- src/geometry/Polygon/Lune.js | 22 +- src/geometry/Polygon/Sector.js | 8 +- src/geometry/helper/common.js | 309 ++++++++----------------- src/geometry/helper/index.js | 42 +--- src/geometry/index.js | 26 +-- src/utils/mixin.js | 21 -- 15 files changed, 368 insertions(+), 350 deletions(-) create mode 100644 assets/images/plot.jpg create mode 100644 examples/static/images/5.png create mode 100644 src/geometry/Point/Point.js delete mode 100644 src/utils/mixin.js diff --git a/.travis.yml b/.travis.yml index 62fef0c..a343dca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,11 +4,5 @@ cache: directories: - node_modules install: npm install -addons: - Chrome: "latest" -before_script: - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" - - sleep 3 # give xvfb some time to start script: - npm run build diff --git a/README.md b/README.md index 6631495..108f013 100644 --- a/README.md +++ b/README.md @@ -1 +1,122 @@ # maptalks.plot + +> 对 `maptalks` 扩展的 `plot symbol` 的自定义绘制插件 + +[![Build Status](https://travis-ci.org/sakitam-fdd/maptalks.plot.svg?branch=master)](https://www.travis-ci.org/sakitam-fdd/maptalks.plot) +[![codecov](https://codecov.io/gh/sakitam-fdd/maptalks.plot/branch/master/graph/badge.svg)](https://codecov.io/gh/sakitam-fdd/maptalks.plot) +[![NPM downloads](https://img.shields.io/npm/dm/maptalks.plot.svg)](https://npmjs.org/package/maptalks.plot) +![JS gzip size](http://img.badgesize.io/https://unpkg.com/maptalks.plot/dist/maptalks.plot.js?compression=gzip&label=gzip%20size:%20JS) +[![Npm package](https://img.shields.io/npm/v/maptalks.plot.svg)](https://www.npmjs.org/package/maptalks.plot) +[![GitHub stars](https://img.shields.io/github/stars/sakitam-fdd/maptalks.plot.svg)](https://github.com/sakitam-fdd/maptalks.plot/stargazers) +[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/sakitam-fdd/maptalks.plot/master/LICENSE) + +## 下载 + + +```bash +git clone https://github.com/sakitam-fdd/maptalks.plot.git +npm install +npm run dev +npm run build +``` + +### 安装 + +#### npm安装 + +```bash +npm install maptalks.plot --save +import maptalksPlot from 'maptalks.plot' +``` + +#### cdn + +目前可通过 [unpkg.com](https://unpkg.com/maptalks.plot/dist/maptalks.plot.js) 获取最新版本的资源。 + +```bash +https://unpkg.com/maptalks.plot/dist/maptalks.plot.js +https://unpkg.com/maptalks.plot/dist/maptalks.plot.min.js +``` + +#### [示例](//sakitam-fdd.github.io/maptalks.plot/) + +##### maptalks demo + +``` html +
+ + + +``` + + +## 截图示例 + +[![demo](https://raw.githubusercontent.com/sakitam-fdd/maptalks.plot/master/assets/images/plot.jpg)](https://codepen.io/sakitam-fdd/pen/wpXxNW) + + +## Resources + +> [maptalks](https://github.com/maptalks/maptalks.js) diff --git a/assets/images/plot.jpg b/assets/images/plot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b6f5bc78b5245773f9a4c62d0166f4b5f34ab89 GIT binary patch literal 141960 zcmb5VbyOQ)xA-00DN-C-T!IEITATvGJrF1k!M)JZQmlB3LxMws1c%^I+}*t`9<0Uc zv@hR#*Yn)_{MP;F-Lo?1tbMX3^EtBjnb|vkSO0zlQ0ZuDYXWd^Z~#y54#3|HfEs|9 zkdTOwfS8Dgh=hcgl>9ygIT;x_6AkUX`)te)AFwgAva)lF@Ue3Waj~-U%LoXGfg~j* zAM(j6J`z_Dk&qPs=OQ>HBqZcyAK064gK_ym8~0pxf%09-0ODgXedr%thz zp($O_v)bpQ%U4P*eJB|n3;k3`ftjanNfXvo>7AKfmhSoBLf~@qs;L^EVvNg*4p`hB z1R2s}x@;y9W*4ttuilFM@Pv8D*j!2oJ*U^8Hyc;#;GPXm>!y>fUTw=SY8ZlY%n7F{2#EmjA*)fBynFLr3%}&Rqigi6zcB`^M<13@UZhL_>6G0#KP9dW( zp(MBkahLWJI-c3dF)RIM8+W~iVAJrkl0{H+y-V=D3Dd#(gz?sr`RjNF_vm^KU}MG& zYKTRci3a1X_iSRyJLULFIyL2oGcc>BPOYi4v5Ld^U0o<((bjkzr82AI+|v- zvjJ)!$CbvwpPL<}U8-lEwq#;s#L{vLlsI~k=Uy%zRpSU;Vr3g>0Q;T*B2XIU5p#B0mWl2dO6m_2YjI!uUu^L zJr-FH5D zDdF93ORj{59>Y#9pdyF<%REhdE}MwZpFz->(e9Ir8wTZypeuJ^PmEwe3d*Qulo=^f z3B3|rhH}};xKo>v=Qu&MMUJ(LVMZmZcK0A@N`l&6#9T%NH-|noN-2uqA0pmsLr?$c zx697WV^XNa-`mMi5I&RilMAq!@+lFmn{MuaM$7)%b?RmY*}hy!=xshR=8X^tqvI5C zVus{PzOGA3#vDhnBZPzn+wa#9nPW6jK#?SH=0esd{46sDCtJ7)o8`JjGpEqz*K5~K zeGXgXOaF__eJ9|YU{m8Zj_7lXY|38>rw`u5Rh8z>NPqUY-0Mm0v6QzNG@pLP@JbnF z>zY{m$uPTWlk?1v5|S+2SUa-xE82a84vQUJL%sNQsXM9VMIE2j3}-2rK-K@;W3!Z{ z$BxBrR0qgFBR%TH*a&jhoYU!!^M+EHMak#P{b8`#=_y%_ffG8|o@XtO*QKzGOtwi? zwXh`57mX^W%tj6&4lUv6^-3vK$(Y3r9|HSGCuer;N=~9J3xA<*0jl-oC#5*%&8iHQ zBSvE^T~x;LEuk;BqB8q2sVo44EH1`zHHgqtT9&Ij4{3vGF6?h zhJV^uHW%~7b-tZI)=@w=!(L~;D*#*yMw^>9YX*iWx`sjc>i;nC#%=X3ywHrpY8uLS4oU9_E8|X-jA#^9gfcZ{nKUn3?k&X~h_r%hrpSGcC­hT1)7N=>rbtppoY zp(*)eF1F~SF)umDGp~uV+Hj&0*AgMN|F)?_O@Sf5JCQO5;N4(za@YL4?N$(^DKzNw z&XgHe+U~)z?#%2pbI7Hfw1!W{oXx!%@8}=3WnVpd+Rm>0wyuHZI$8B*&5*^6?uvdN z$T)DBvo*}PbxM#SRFJ0Rl--0F2q~L;c7i&0jIG(c3RDD9B6+&AD0J1Km1M{OKd^aP zO}B=L9{5{3DI+n9YIgNdTtX#;vgQeVp3E#rq>*6D_?P1mScu(k0A&$P;0Lv(RiQslNPodpgaB)`O|fYcw%vNg>#jzRftK{_Q!IFfcQLPnvXPRb-G;8h2C><%MUNToR3*Yb1ls8x~5#{*b#2qxFT2^O;J*#Vv)c&z%55o zsnTNYfN?PkJRst+p!RyiRqXi_$f8Tcd+WDSVVcX}Rx!=+>NU%m8na)Xl)i^qb?oZ) zW0RyXUG->n+=>j(A}z+{KI#dd9YaKx7Ep>(B^`(0^a|SNG1?LFX)z`2@6?1< zzfPdg7AmQ1z-7IA^&Q>nMr*{#D20yH`~Fx@X4i0(nN;q(cUJyzk(7Pzukf@RWY(2o zjU~m^)*pPI8gw$PcqvC5rUzr|V@_LWixh;X^i#S#R)NdP$(e$en;0H+8q-7FHCoxL zj@%O4{W8&BlogN)dm78hZg-tSWU6m@Q_#2v*flf6AalMp&)EFB37jMMq^;bMN29Eb!;SwR1<|r_ zYL9m|suB!gGOVWoP|+tWb{RWd;P$GB0q|)JyOx(YcuE+Ys}M;x)ljUvyZ;_27_Gr0 zZk06EXea03S;bwd`*CAX5%ztHMQDAqEOHPUY8|!tNmPdugodPvj|)BPv~q*jIE+eh z<+n^~6;=7SHnxm2YY9L*%E?})h%Nj6G(y$HnY#)>HjL^!6Fp5|XG%0NGp!UV?V<9Y z*!q84$`}~ZpKCcTMfHEL41lHj9y$$4t?uxyZHEjFB|`5{G}6r-+_ad2A}hLxbe^5b z<;4cntc^i}$OgXw4F6-W0Ypm(x6AWc9FX*=Dws-Hb;wiw2@L>%k3ZO#=)=;Sm4*q0 zjJWcmbS5mhBoo!u*Ox_>HEccbm{Ovu(duhqg3`}Tq~PMaaxXfMnRs$bbh5V1ELKD5eeR!Xc3lfqdE&*p`%@FN88jy)%{LE z-en=94>9d|mu*KNmlaRS*1@*WQ|02dE;Z**oey?`fKvbC> zq2e^SqzVI5sYe570XX;()HMDbzio#SyDv+TrmZ>wM~NmHW>iN>S4GI-SVq=G%h>tL zv=fpjNjS%nt-K^!hJ~*X3JT!t$lDwVl@;m0Trne<;k%!HpVfyG);UF=zz@GY zQ|#VpZ#ZIH3P|c^5P@t9(_|68d{~O~>$o|z+PFfRm^yju=V6$EmBm&nm;mxH`wEny zs1(N<@&>q=W0fv_wYKkQz9;E;|D~{Ix6Vj1b{`3`O_f`uF|{pAIrUd$kmaAP4V%s? zH+F$j0-xJVV@#|={yow-IQ0Ke-}&v6blQC^4m;SCihIZt>B7zn;02IWv8ZoWpy~6r zvx%PFO3}%g6~*aNRSC&8mtb4$r9Wg#bz9QIT7-T3gtBl-QmafJOzvR}9=CV>n38MX zyg`PO3#3Ro%QLr$*d90Xe<&4zoF^JfLL|J5dEgL<(A(*UA))(?%k8dsvp<$T_)DNj z+j02mr>*Fbq9R>Mb3#i@mEt;Rb+ajw5+JZzjmtgsNqzmOK>N1?S4!`3?`Om-h-Y(< z=@QuFnR%HUzzD=0@eVxj%PQp3S}D_^qT55ErQbrrX7E~eJLC22e}n$(j6;VBc-be_ zTKJR~K`Wq44~XN&eHx#TEy%gSlcj3R;N}|`4Dl;%&kr>}UOccvvEF=kPetI5!|dUK zmSY~HT^)NmUtP>ez&<@Mu)6%yr7p6|uDPArh=u**8BUh@e#d+Pj*Aj>-CH8}-1Ban z5O}kCC5@I$`@q>}0pusPgWG%ftBV_QnUfjLf{t!^Sd?ssP@WZL?0G<-dN*^@$zrNZ zhlv+V$e1U~w$zB)be8iV`zoiK^y&nGAS%BKe^h1vYe?d&-^5sL_4<~!NE{%COzK`P z_WaXzyQC&`t-f0-n{xx9GgW0#I4gZXtyJ_c^t+OP?0#OYIu^}kG<+MDeQ>qBv9~NI z3`tnEOk6}}J1nINn9mBUGDnY>o4JfOR@KF)foGl^1iKtc6;z)eiPDImCV+vSd7O>GbiR$S>! z3-zY9P_cB#um)x}(UTW5(`jv##+>-ULT#6>xX$iRjlJo%E>Kk@J(=F$N-V4H3zDFc zU2zF8A4)e+i|=Hfn^~dRYg*>5)pH(MIJnlnTLS=q`fDo7_K+Zj8z8Ek_`r)JIO7mS>9 zF7vfNUF%7%eMT7Q>6FRz7*`B2AK5^1f*DP_i!_a}7usxI!8 zmPoG02zDMql|9v1Otsr7|AVv8HpPQ3nkoz zxndHTYh_OyTHE52VGa(8lD*O>WIB%T!{#nq_N|iv+i~ci7 zQt|P`^|JXJ;pKfI3AG=7OVubz7f&<)!_O#hJCm?aGjB`i^ZYu#UsJkR)##3mQtni; zROO=jtHe*p+8>o99o~?&ayphyPt7Kgo;ip)p9qM#gWo1i*XE~ctan&uRqY9E!j927 zyXN#`1(HS*_D2B+&gfhg>bxVj(d8OAEMF=3Jg90mR=b3;J)j%n85bPXlrc}Z7$c6- zW2lclRedCGeYBfp0og3Gu)8NC-G0_82~{|wwn@15g_@EA6ve=_H1OcdpLs)d2m$zN zfvZ8T%_bYGRND3XBAg-sz`V)RQmD<|IxxZ%iRyl!6geMdbi zKVCt2N$;&`Ltn2MnJ1O2FnJ~mT1gBnsUD1(6U(jacbwF{m@?s=ln(ayn#{-`#)99P zl?`vW>$o8yh^NCL`V_R~`oQVk&2zQoR0$0BBP0wEQi2=od>3H$CN|E8JrNQ8r8F)w%;xzu| z&;66dBQnKqrZA{LOG82JvU5;%;P-BY`Kz%~iONS_KQ;Vh*UuJSKLr00$h|o*bF+1O znxLhfD|rlI2&1m!Hk~sP9{+u!!5JjTor>_EWEOO?kqxkts@fZ0lX8P21xg|Vk-VEX zGhBjXX*GIji(S^5%Ve#zCdHmvEjQkvyqb7dg$93!1y?}3yJh3?)DT@u^8&NaOvw#D z+@fgaz;EryV_*@!Qj!)$-@qJq=oTy;I1SizRcYnTH9xWuFtb^>A6XgOh!%IA5`~zr zT}M?2IE|HOE*`jdvPgojPS)qDL%DyRvdrYvg&>0Ba#johB%DupsyaMQFXSlY`I}}i zGD0vr+@)@JJuZldP6Y+PH(ToW-n!^CWI3*M0kSmnNXJ6O-taJ9yk%UB7Iu1`IFwW)-|JM$E-bs#dFErX!(A(F0B_C_Y@Zv zVuLl`>`$9E?dIRZ%9s?yoJ~XhxXZdjK`#6DBW$wR8j!k$K;HM0illTlI;R$dDBMwx zzj$#NA+th9`$A++f+4N_2H3D2aJ1sm-mSa9MlRFK*-A_|dPkMA4du-5G@1ZXeo}b+ECqjzg8Fmi+Re{u|*ss_Hf+Ew-0SL8kD5OW2_%k(4-`MqAbO4@$xdO zbaoqMsH)GhGTxCCaj_~np^8Zq%{vW{>*)X4RV{wg){PIr=y7B*NlZ#^|DWRuB?P9t&ANsg@$XU-YZUr3Zl9nu?f-% zqzT#sl@26|nuM)&;%gGeEOXl=@GB_JXI8OlMK{7CkekFx2tM!Bhl zW8jx5|G>~(YKd~5lY&;Ht`_T-rP&IUHM91e&GCXPISFONo%>eG%?^7J?ziHk`dL@K zF&o{$EHvG1g(_9`l=gshSJ2ZewgihM)_9muR@e&*&}fPB?wX`_*3n!{WAtII+tWJT zl-xB9^U$CX%OgIy)1`vuMh~3iTh+IOr z)Ecrh95`~;!u3xQg|)4Hq<5B6r;#IHurdQ4wYz{NMj-c7 zK3v>T!(}Mb+AKbATrACej82F^?;~;tS<)gLWK+GaAzAs}j<2K^`XkZF8=2me>4s&x zu7MqAVtlAIXRYmH9bgI9wss50YvQ!Jqn(>fRO1JC%Ozyy&GgZgaDLaHQYa%SF8xyg zDF8s8XP|O;1bDBOJ2x0qr{EjoK2YP-Wl%L}S@d7%|D5iXT+3Q3gqu$|>Y>G_X+Ds%$qMH(B4Cc3;uwi_^~-ukJ8$mHYl}uSx=EUcVdS$FhE)3CTu-#` zulPNx4(tup)f^LVk}iE%d}SMDer3&tW-vZ(kipO?)cyrXSY9b?zkTc%F2r1OGTA@m zayK3BaJ7gUMrRX^>(KN)USFq5V;$35^Ox8Aj{e;d0Kh}dr6s#U8%Kq!?dC`EQ))&C z2@@GJQHZgOi@uh(hzsl?c_C-6%br>@GUa>ydkHi)Wi;iYZ(ZkgRH zMgLe^$bplIK=z!ElFz;BgN2h|)$Ig?Yy#K5*au3|5XK9YfA(r7G1MZW%Jn+&6Mxh@j%nV%m6%oO|(Ogv+9=6>$d+D@_LZsD?fUDtI(Bvf|Ytp33l>~EYv3!LS4@E)u!{wvk zfXDK+k!`__&N+277Er6WA628s#a3Y==lCTw#0F>;$Y4rK%Jkx-#wacJAiy)IW<2g( zFeeK0R*7bV>NH=&5)#O*bLNDwLfh15c$uziA+KI0>SpE!io=uO75kpZn!MXK?-%8K z4WrmNUMbgxk%a4V38YXo0H6t+>j#1%(iLF!*K)u-&I?6$g8wx`*n+Tc$^U3DpP*)QmEU2RN=FA56ODZD%3m z>Zn3I*N^Tj+WX{uvQq||Qr}p;v>gTSU{{D{{eC4Bh*q@k9(W}tOsR_^r<@BA@rg~4 z`{SBkq}_R#zy=G@VvG1Mm$eL$6O!c0f(~PJZjf`!W1Scou2VlV}A?A{Uv&(GFoOdyK~uIR>%A7?nNXG};_Gn-o7ILthr4b7Lm2>VJ+ zjf}%x$_OpIo*;)aYJo8PoK;!#s7+8mh?%@gU!lZv4;@HuM+NblI1t2Z_14^Lsss>9#f} zimanBUda-SzJm5q^N#)Y-taGX(IwkgxhDZ5g#%bYQKnxgx}eSZSXUy~z12yCxN5$x zBM3%Ug?2GpNg1mNFwU-8N);0+OXo1F-i#EcG1py_siBpQLtAk9V`l=<#@M`iV>c^w zaccUL#yW?JQH=%gMnSOTh~8`i!g$d98%O*S!&PT!z62FpwYhyIF*ojAOxWRu9R@IS zaAi-6_z!G=qPG(2F}_B1^ZnymcNi@5h1t*F#7kdSU%c1sgi?|pxBo7P_0dj*mCQ)^ zW>i<(uA}(ZOT~s&Dd=jSCs-cK8jnl%O`^KOlKsE<+#4|4)0WLV@pt&3)jIR_25RkE z^L!&?2JUm;WWL$^xyF($soN9|l-M(REthjSx@;SjK*w^wBAK)WZnl~G;zm)}B<5w6 ze&BI&oi~emoLUC&YeMDveC!#+eEFMM_uKm7v;#6zH9&5)KNL=$)qi) z4_Q;_Prl6ktK_Y}0G7p+?)Lm+jlj^VK8?Bp=S*(@nktU=gen2x8G23bZ{1=%4gI~2aDmCAQXg^4RHbUq>vFxP=iw>6iXPBeA!jLu0} zE4sB98@oRp>h?y>39^wzPDG+ajfC#}Zm!{TYo^agUg>rfO%;s+@>_*~@?txg5~O#T z|0XhFRn^0RQ?+bV%3Jbj?Ss^KN;trhU_h2`5a5QRY?(`;45%sUQdW-vDE}ufQHQ5i z(xPnwO88w1N29JA1#}vxZM*@ z1fFoSI?(cXX85xo=^EW|a3xImNvu5u3Io|*{!o|h)tY7>L}5N?2~AAc4T-zj^vl^tjon6Czmu%=Rq~JO`euF377r+Qw&TGkU>4f8B=_A!A9CY|TsSSDHLm96KuN|0AA z1bYs~V2T>r@$a~(Ou6g-H{HMM&kYR{u;#9+r+vWvuCl2!lvhGhi$59k6NP{m2VHL0 zQRAoNc5uxb&NMf5E`KilO@%E*>VuEhjDn7W$k2DK#^CGrN@tHz%#tS1ytj146rs*N z{}p0cG7}QRyb>&aT7iL)+c1i|PYGRvY?++r8CyAc1%iDfbMhc{+UQz=CQHtXCvy}@ z7sbKbxnD`b`oANHA@jh+hA;_P|7_eF#w?^rr?N&){n%zhwpR8D3%uN(20BxE;JKTe zSF-t;cd@l^ZX5(wDK+gjX!+8s^+5u#|RxG0rT$K^wMal}~!^_^i9^FbCV-EsXr2e>?E# zHpMPcdj`$m(0gsn%fFN{p>Iv#$^8FXoqth=oiX`*Dt0DUhqBT6Url*vh@VnhTTYdT zK%eusqv)rOSIwq?s-HCj2ba)mW>Snd$bj>G`b1+F3%A@d0u_+kj+tj^*4%r18MdQ@ z+=S+(7!NUR+{u_KG(Prm#1xDPlq(O?In#jD)ykymqzlKygMtU8*y*i;CMm)Y?wNzY zby!Z-3CbMAgLYXT$Hvy1Xz)5LsDSC;CLD1}@~$5q?tIR^@g#990o$^TVqpX~F+uBR1GL~2@*$_0-=!UJmcB*U|^%hr!Yg|hquOSH9x zkd-pXVRdD+?LGsY{##KG;e*B?S6KmP@DyVe#>)ex{bY7*BQS55i}W-Rfu9^-{jPIr ziMtWP4#PNc8((ur;4Zl*s0q^xT2)G$5XwmHH9%^{w`*KveOuI@H>8aRanLJgbsnKR z25P_^wL9)qNoNCoUX0LcY=MJRm;y}81K^{s{Z5%i9}&**?xu^6$9rO$gIcNk-{G+T z3yr>}bYZnMVF;g#mnzvdqSQ%Lw|{c(ZZDtAbW)%vm+q!UEA@Oxb@oc0-|9sgeBnhm zv5=y-HE+&B6E8@k-N;&Gy@O_Hc)LKjHE615`O@zibVwH&H$F%wtdm%~m#)F5b%ZoQY2gC+;)GIcrjWXM_JejA8yNFUPL-hql`aFeHS&6!gT`R77_H; zM8pBwXblCP@&c-(Tb^?F3IYj=NG$OHWdzQKW`K%!6*$UNfCyaG2ml}gz>cE~zy)OB zaFf0RkO4UVCyV4?_XPmFy-QRCQ2}sqaq#{Tg8$A~#K8qne5i4$-s z(@99G8gfhVXsF#KFcROTHR2H9F4R)A2VlQ+z{GnLx|gH965%NypCS@soqcT^cKFYl z^;&`r2G2K}d?N`3>FwA=?0Ds_b|6ct!)C*lvMlNwCXG)Xt?{+tZT3JsrM-o{wqS&x zJ_<9Mr)*@LF!13Es(-B+|5(NqiFoQl4UKb!+025_*#VQaQInOIJjBig*`i1_VWBv&jA2ZpSSZs+tJWNXp$JC&!=l%rAM|<#!`2@iy?iaiIGo&PzBH>> zKTdZQ4*HSH94-3jO+k4Dt>DUXrAxz8=jFZXN`(FzfU(KxOoTlDd)w{nVq$0xFxpZb zR`->CU9*9r_t#TY!V-Xxr6g>#{Van|p6Mxd;ksvzH{MV)#nc2FJxk9SPAYPfDEZuB zFD81u2G_8Zi0Xm&A)yz7kCR{0FTzv#=@Gty&Vk+PM_okmflU*`g&m=t+Vvtj6KL}Q z=*zRY1@t<+KpdQh_@6razkeHnPbEN3pfBgAxbLJoVCRUa;@^to!sKpAAw7t-_6XI_*@h;_D zdoy%1wENKS;M<-0>iP7!_V$>3JD=ZS2=}~%H1xeP)mam6ZoLszIbfVSUIjHEol0MG z7}ZW*Ik-XB{OADzn`;}YrxX<_CS}qd``Au#m!PBRm(WlUlQwt#m zpf>JwKvSPQ(%am!3m_62=|`bAYk+%ja%8__rxGqwDkHH+jApjVzOiY#G0fnh>{LO} zcv>~M3?-qPiiBnzav!&sXavrA-_)S=`{v(**YTmMSilH^x(|V>873bw*vM@jz(r*^ z4;4O8h!g8@V^Jr9^3qM^-mo0h5j{8l8DuHRlHvpol`PyOeBi8;;j-3ZBLh5aiDCNQ zKWCY)1f-tcCIoe~cVzc55D^~ckWjrd$RUz{v}P1y^Iht>tIG~j^{M?M37K!#Pio=9 z+nDCDRXHOpLOHPl%FcM@@JJ$XsjV*u`zt^?=c(y@Qd`sRNGc(N9-dpoNm+k;lTzu6 zrH`LscKT?-D8I@0x4emY^Hq2x8^mHltXg8!Z>!HDn;vS$D3UlzIpk3=uN{bKas2A&=KNQ{E;9c$!Cl~Z`$r5kv z+zTzmgBA|uUesZWZ&l>mZW3}eJ8349J9&wS|7Zj@*ywY?#U$zOQ3+40G`W+|PVTAs z_APv}@#H<+Cr$|cU=nwqaD$v%H=DR^$9qHOV)ON9=2(mC9W)s(3Ykx(T{?2;RRH>_hs8v&`sR)b9tM zN`18rwq^C?(Tio{H7qFP5s4Bkzux?~uNIGv?3pD=jDd$)6r^)se^!)_j~Bo;3@uX2 zPuLd6L!TtV8QLI33ECX=5<1%~4;IF!7IMgeuwzPRodic6Y>S1yYX?igQT0mOup^;G z_pvJ`My_u+km8}v{;k9e_-byi;4Qb8NQlx~?rST)(lJF!%RpK6YgyN#3CcI@1#kY* zmfUHrjv5V~T+KQCqhY#hRHWBNEhzDcO}k)qbaD8v#l9mdO49FZ{=Un{g#CQgiMOq(F!7NhU-3b*UN?HQ*<+*qO;cHSAsSpw~&lw_rh<*snj;roXjl zLF9`cY=YR%%u!38iAZWFF}6|cXzxSY3?Stmz?5h`mqMWy$oB3fP3uFNYA*>_so8-+ zu}gJ@@g2#Y7pWxKv^fLG7$ps(LPgmG4pfXf&{^kWXr)mOe~9qc4K6ye_I^MMK-yUc zmrsnU{;*=rlVaFmU`rS^lprnSNn)7oz4GDqkcHLg`g{^zcs#1gW#>lCjIL{ zW^#c3;2GK3^Mt8vS~eYoy%7+fP)UR~ay7igw65d1p&i`_PDO7gYG}P5?oAu-()u8Y zGd9b$!v?>1(>tq#_H3)eOw9qW^9U4X!zSXLEqa7kH+8)wTCT{i1|{7jZT5?jCId19 zhn!xc{#djuG;@ApSfkpdI#ZblYQN~PqhOpt9M)W4%@({q^4TrgMe08-aO@c(2krI` zB~sH%((E2Yf7m3X2SngYEw&kL?>_i_NFSk;x7QyXa-Y;~kfa-eD`fwfv(f7nzrE5& zZ~hJP&IAl`MUSOv`!Nsp1!OTENw%+UxFh`JwGT+tgC5mYltO3 zH`pOSR1ji!Y%W$NYa@|((o>k(4?0bnrd-HWBJocbhvfyGMbfU55;Kr&S?o|~CS$sE z6w7+G{VVTFoog!fF&559aVkQ68LO&-wX@jTV;ep+^RWk3ERIJXr>(1>a47*%3LyVd z{VPAGdGM3+X!OPGp5a5@&s{ZR>T6pPp|l4EZz0tYZ-@n}*< zo{uX%WX;eQsX>1Xw~fP^@ab z1q>eJ;Gyad9zK#Yy9P9yRcr^}R6?a^XeMcMjZteml#ZeRKjZcbiUI!)Z)`Y2`BePD zGpzsqVtYWKun42Vo&w`DK)fG$8_(?3!eA3ct{-#8 zrOYmOU-*EyIt$NLTY+9Q9S;?ie2~Muq4-Sau|J>JyvzFSyjfdjfE$`z_{~J6Edqc& zaC_X^_Xas5@ic09p5NDupEfGS`@tbkz0Cvyw70=Suu8p3h;l?MuU9w2j zuAsLwwQ*@9-j-MZ)fqjPDF3plh0dFYq>5#aV)9AG+tVFG9`z@v(D_OQaz5Z0IH;u( zbjt*q;zdD)0_kS=07+?|#5xB3hx<5ShFdWS46tL0c=1O!5)Cy}ySK^)w^zX(tnkX?0FvWlwqSm#b&s2{07Xqk@#5&HS;-s5 zU$Lea*M9S#K<`Bg?4?9X$f8o-%`Z9a@qFJ?<@ zy@U>NCAgRg=6k%S-OMBc=U}UzC8ib2D3%E5^r*yCv5oF>boY+vT{SPX{sq*v8agCk zWHZ7ZpeQl3;Sb~_*>eV~hktEE>Uc-7={1&muk5SaxH)f%1=4EW&O|KuX7RB-iYkDA z9{&^R@-t#a;^1&71(o!ufiZABK#@LU;OEPeH&cEJLA5Mnc>{QrVvP1dR6g#jGm6sMtJ4h+vk!0v zRm9KEU-7*I&FPPOv*1Mwx(7R>2I4Ttq@nO)Nt$UP$h5(io0d%etey%82DTm%`|1uQ!kG#M%CSA}3)7#642 z4t=-?M{@SAe@y`@Ne&0M7<)s#)t;F&iYfx1z3F?1DaUD^D((Gp6qlT6$}xIE=;=jZ zp*Cw8lD&{S27f`4{jjtk`Qscn_}M)5h|S6gg(WMFD<97L$NOBsk!LS<+4VoxY%h&t z>bszih!(1^PY9)`_#dh;2p&}>xO|$8|6-urU~Hx-MFZ+d;t5og(FdS27kUfv;@ivu zHrFK|rD*T?$!6IrY9+CH+?(am$?K)?pcPE{(~kPQ==$f1Ehv4#wRV6BOEq*WPZFgP z83xu-l=GII?`)gg5?T|(rQPGJ z+>zcHd7g!%(OVBcx%`ll{@c5d-T#0XWup*F^$fH5Xyk6>xmo`{hqQswvSbRs_xDfCl$j zx61n`L@|128od?ljVeHRKO-BvVByE{Yl<0}R-HxbNP}{l`(vA3{{jT^);HU>?lw^B zgSk?n;=Ki*1XB>aN%Pc#sBO8I;AgU0e}*9;lY@8J1sw}44~xPR|4_rSz%(bPcFI7K z$y$!5yt{Y?d9s&BYp?FYcO!@gmPCBzkCp!dj>F}PE)GoF3`A2w{1X*R;8*24CQ1fs z%ey7c=JWdtQ|4wU=wX%n zpq@T!H<0=-;3S-`1NeG2uo9u9f}nh@7U=U(4F2|Ktl*7YOaATC!bQ?aNRri0m}J`x zmq_Lcr9zan#E5S8e0%aIJym=Eh1(>v#*7B|rvpFH;;5L}d%r_jT3W-k0n%0DJ53k- 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Ĺ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 z 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 literal 0 HcmV?d00001 diff --git a/examples/index.html b/examples/index.html index b8a88e0..deb8f2c 100644 --- a/examples/index.html +++ b/examples/index.html @@ -39,6 +39,16 @@ }).addTo(map).disable(); drawTool.on('drawend', function (param) { console.log(param.geometry); + if (param.geometry.getPlotType() === 'PlotPoint') { + param.geometry.setSymbol({ + 'markerFile': './static/images/5.png', + 'markerWidth': 28, + 'markerHeight': 40, + 'markerDx': 0, + 'markerDy': 0, + 'markerOpacity': 1 + }) + } layer.addGeometry(param.geometry); }); var itemsLeft = ['Point', 'Polyline', 'Curve', diff --git a/examples/static/images/5.png b/examples/static/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..5dc9395e3d7f1e5cba70bb443dccaa1f33965f54 GIT binary patch literal 4341 zcmV!P)f6Xi@@54ZTQ_E-Enz5K6$1 z03tR-RB%L5k){YTDBysjLy@r}iiH7DvFijGMAUI`6dRUFWUU$Bym{}eS9UO(Z2>7`&z9wUXbV-Il z#&6`Y8GKGQ04S2&F6MJnWNa;Ck|;8QE#r9r;7G||@X{|>%+C|c55>;RS}qbKr-&IQ zTvLXPlM{>K&(BTgi^a?^4mXV>;xX8n8Ce|RasXz}{8imI52H3ZN4bf ze_i~WlJ|C&UW9+{8AKoW!}eExnGFE2re(F+`iE_46#!l90Z_aBhs|Iw0E)7{bq;-T z9=d#9QpDmcXDh4R++0fmpKB>E=%LdZt9g z$j;($`3&Zthxi`{{&gM}5&R^+h%b~yM9Zd3AWW9ETgVfL1(`yIK=_}U_z%PWq}jQa ziQ4!P(3V&Nr6C$XejWfQDiI(Fdt@un?|lo#M+5oIi_w{wo%_#%{(V=tO#a9gB!7-$ zM?^BX5>d|Vn*3S!?g~$*UQipUP zL&zMmg;!4Do9IA%up=Rh?=qPj=x&RGBx1dpI68aT- z2O}^EromdU5o`ssU{5#*j)WJ%$?!5bA1;Eoz?EiTr=n?cd`V|I)p<|3O zju?MT93~aB0<#&j8`F+Cg&D?-VWzQItUA^l>xvDRIYI4MQ`g1<+DyrL=EogS06Xii({|v`U^zjmmKqDIK93(F5q| z^fLNk`gQs{RV`IdRle#b)i%{Ds;|}NsClUI)k@Ub)kf6bsWa4l)YH_rsduU0(?DsM zX@qO!YV6TCtMPOWZH~(v?wpc2hv(eZgf-1HBQ#fN?$aF5oYvCT^3%%Fs?s{6^;Da# z?V+8jy+iwi_M{F~$4y6|vqR^k&SQoO!;_KDsATjprgSxR{dFa}^}2()GkV5)QF?`X z?Rxk03HmJkB>f%wz4}uIItC#I1qQ7Kw+-=zEW;GTU55RJuZ@h2VvIHzbs0S}Rx=JT z&Npr~zH34@aW`3J(qMAU6l2OVO*7qXdf5y%vo}jIt1%lghs_<#1?IcWhb_<+P8LFo z28$a^64R5J!)#@aTGB0pEekEXET35!SjAgyv+B3{Xl-wuZrx~o$A)4PXj5p@WAm%6 znJw40#`fA=@?77!tLJvleQsxN$G6*KchjC~A7a13zSsVPgQJ7Uq0M2^(ZDg$vDWbh zi^d9LZDyT!LOXdmt#&%*^w!zIS?qk+`4<X~g?%562@eae34a)26HyS+zks@6 z$%2*zuOhu7%OdYYnM6sVdZQJi6QY}=U&naIl*dS8tzuWkUW(I*6U24LW8oFzvR(TOpMEs5_rp_~TJ^wNN(wM(bC zZ0;`Z6P^ce2XB(^$}i_nB)KM)Cp}7bP2Qe7nc|*Ok@8f)7E}wKr~0SXrM^xJP1~RL zDLp2=Jp-4Km~m7{5vB?IGPN`FGKaIwvx>8%%bb_(Ts9>N5;bK**^9Ef#WdN^)PTf9 zvR*Qp{o-l7TcBI8wqSIn=gRt3(5j`Y zdRObOE?Pal#&6AmwS={4Ykw%TE-Wv6xh`g1Pmxy9nxe7we(PI{6^cd0H#WFzsN0Cz zDA+i-Y3`<~O&?2mB^OJrODjs>Z{}{k_?699m0x|@lC)*8%%N=0R?Jr6*6Z8cw;d=~ zF3&F?+a9vLa|dHb$&Qyhm+ZVyVOLSNi?B>BD~E ze(8aT1AWbo&CM;EEoH56tE6@EV8X%6-*|u1-NtOIZ>P7H9s-9XhaP{M`0e$>L5F*f zu#U8SXZT%h2eqT56Y5;vIn|ZYCGC#u9zGg)w718lr{jCe@An_mJyvsE<#^c%!il02 zpHAkVoIaIx>gnm^(__6$dheWxJ#(!uyl?Pq(Ao3ne9xWf_v}A;-u3*k3(gmgUSwVD zy5w-FbHIL};|Kd6ItCpEJBJ*Hx-UCj?irppeBz4xmD5+fub#UWaP88_{E^}7QP*$Y zNVp-r$-DXJR{E{yw{vdK+*xxMeYfPE(!GlNn)e%iH2tw%>L5Kn>ODH}V8MesW8ASP zKV|>)e!S=*`C-L`&P4Mg+egPHeJ3wJUif(YN!F8@r^P=j|6Kdbc>FRj6+1Ql zT=e|YubW?}zu5oM?q% z@g`gbkZo#pZ^ebbEjQ|V$?ool2#O+1Z*P3}V{)NSC4BG=hwQ%gNsHixkR4VZ? zfzTF!x6AbK@c5MK>0#@) z0bXDYlga$uArPHTCj>RFY;I=2ff=~n*?hwR)K>QGQo947CUc4neU$#Id zlO4&+%Uhb8n@f%e0t*;9IXQ*IgH}OXN*a?QDQ{YlGX$(Uy+xUDb7FOQGVGBDQ`sYe zWM^k*Ar_0WWzphBu*5W{5IiNgULW4NEWJWn{KF>r2u`tBtg0a(CX>mR%jM>^XRWU! zj7G;|!kRoWtm)>hd4`hG%kHVkUxNo^11=f_0f-HFORLUM_UmlwDR0=H?(CzX^|fxw z6;Dk`ngkwL3YSL*LAtuSFp)^Kx^3g;8k|C>HKCN7eHiCGD4sn)c1ox-AK}&K6{;{$f)tbKoFu!6G3RTT9!bt z5H9NnVq{)->B$Dt%7adgmB%Ro)t>%EC0@QX4#vA#03`tNHK-cYgp+cHz0z~BrWZiM z=rN1OhauJdg*izsW%b}>wT@l+$kK*Iw87wIE9ndRWnNjkig2HjC4}Ehm#Y6w0fzy8I$__w5S{0bH zDc>_Csrgz)CXd1izp)UY42E`E{-;e|i3za)u%)rF@$=x|U^74rt{KvgkR(Zmz;|Y| zxtt#{t0d;^&;06_UTy}rO>zhVTp=$yYUE7~@qsWwb=CqGETM@lE;R9`1owi(xw^Wxj+n70JSc3eWhs zXo$BMTM%}E&;r#_1+kMgV{2|fds$f>{>T_+RjHfXotd9~G7kdtZ8n>I%bq>#0-*)I zrf)&BHNj7fd~F%F_{JM0(R-Q8-x}x^E;v_`8Bt|z-mL& zJ;iWq+@#XKJm=1#T_S(-1v(#uHZxe|a8&;Gxxb|?8`dfjALr4v>o}~vIvU-h0-?oX zv24SphSYH-lFLT5I{N8*9D(4vI7&Vf^2JKX7o*ZUY7hwAJ7ASF;p^Y^u72;sXYK{9 zN~hEHC4i_It=>_C&;q_MkS>^ioMN%m6hZX=j6;x`revhc0P+LWfdV%)(3B18j`UhvaRy*&)URAiDo!e14M@- zIvoO`1>AGeXO3be#X$7{#h;wKXd+A>a8#eeAmD;OpnpL*6TDTX&WDrv0RfW$t{j@I z@dd#!tP3o0dxAXD*iln^AErDF215<}5sWX$6S*c)!~~lk8H_M)1_-UAipB&27OC?J z4_6q}9S`7AH5OfCwMaAO? 0 && + this.getMap().computeLength(coordinate, this._clickCoords[this._clickCoords.length - 1]) < 0.01) { return } - if (!registerMode.freehand && registerMode['limitClickCount'] > 1) { - if (this.getMap().computeLength(coordinate, this._clickCoords[this._clickCoords.length - 1]) < 0.01) { - return - } - } if (!(this._historyPointer === null)) { this._clickCoords = this._clickCoords.slice(0, this._historyPointer) } @@ -212,6 +208,9 @@ class PlotDraw extends maptalks.MapTool { } this._fireEvent('drawvertex', event) } + if (this.getMode() === 'point') { + this.endDraw(event) + } } /** diff --git a/src/geometry/Arrow/AttackArrow.js b/src/geometry/Arrow/AttackArrow.js index 1bbf8ba..09dfe3f 100644 --- a/src/geometry/Arrow/AttackArrow.js +++ b/src/geometry/Arrow/AttackArrow.js @@ -6,15 +6,11 @@ import * as maptalks from 'maptalks' import * as Constants from '../../Constants' +import {getMiddlePoint, mathBaseDistance} from '../helper/common' import { - Mid, - getThirdPoint, - MathDistance, - getBaseLength, - wholeDistance, - isClockWise, - getQBSplinePoints, - getAngleOfThreePoints + getThirdPoint, isClockWise, + getBaseLength, wholeDistance, + getQBSplinePoints, getAngleOfThreePoints } from '../helper/index' const Coordinate = maptalks.Coordinate // FIXME error @@ -39,6 +35,7 @@ class AttackArrow extends maptalks.Polygon { */ _generate () { try { + const measurer = this._getMeasurer() const count = this._points.length if (count < 2) return if (count === 2) { @@ -50,12 +47,12 @@ class AttackArrow extends maptalks.Polygon { tailLeft = _points[1] tailRight = _points[0] } - let midTail = Mid(tailLeft, tailRight) + let midTail = getMiddlePoint(tailLeft, tailRight) let bonePoints = [midTail].concat(_points.slice(2)) let headPoints = this._getArrowHeadPoints(bonePoints, tailLeft, tailRight) let [neckLeft, neckRight] = [headPoints[0], headPoints[4]] - let tailWidthFactor = MathDistance(tailLeft, tailRight) / getBaseLength(bonePoints) - let bodyPoints = AttackArrow._getArrowBodyPoints(bonePoints, neckLeft, neckRight, tailWidthFactor) + let tailWidthFactor = mathBaseDistance(tailLeft, tailRight) / getBaseLength(bonePoints) + let bodyPoints = AttackArrow._getArrowBodyPoints(measurer, bonePoints, neckLeft, neckRight, tailWidthFactor) let count = bodyPoints.length let leftPoints = [tailLeft].concat(bodyPoints.slice(0, count / 2)) leftPoints.push(neckLeft) @@ -83,8 +80,8 @@ class AttackArrow extends maptalks.Polygon { let len = getBaseLength(points) let headHeight = len * 0.18 let headPnt = points[points.length - 1] - len = MathDistance(headPnt, points[points.length - 2]) - let tailWidth = MathDistance(tailLeft, tailRight) + len = (headPnt, points[points.length - 2]) + let tailWidth = mathBaseDistance(tailLeft, tailRight) if (headHeight > tailWidth * this.headTailFactor) { headHeight = tailWidth * this.headTailFactor } @@ -154,22 +151,23 @@ class AttackArrow extends maptalks.Polygon { /** * 插值面部分数据 + * @param measurer * @param points * @param neckLeft * @param neckRight * @param tailWidthFactor * @returns {*|T[]|string} */ - static _getArrowBodyPoints (points, neckLeft, neckRight, tailWidthFactor) { + static _getArrowBodyPoints (measurer, points, neckLeft, neckRight, tailWidthFactor) { let allLen = wholeDistance(points) let len = getBaseLength(points) let tailWidth = len * tailWidthFactor - let neckWidth = MathDistance(neckLeft, neckRight) + let neckWidth = mathBaseDistance(neckLeft, neckRight) let widthDif = (tailWidth - neckWidth) / 2 let [tempLen, leftBodyPoints, rightBodyPoints] = [0, [], []] for (let i = 1; i < points.length - 1; i++) { let angle = getAngleOfThreePoints(points[i - 1], points[i], points[i + 1]) / 2 - tempLen += MathDistance(points[i - 1], points[i]) + tempLen += mathBaseDistance(points[i - 1], points[i]) let w = (tailWidth / 2 - tempLen / allLen * widthDif) / Math.sin(angle) let left = getThirdPoint(points[i - 1], points[i], Math.PI - angle, w, true) let right = getThirdPoint(points[i - 1], points[i], angle, w, false) diff --git a/src/geometry/Point/Point.js b/src/geometry/Point/Point.js new file mode 100644 index 0000000..5bb7a7c --- /dev/null +++ b/src/geometry/Point/Point.js @@ -0,0 +1,89 @@ +/** + * Created by FDD on 2017/12/12. + * @desc 线 + * @Inherits maptalks.LineString + */ + +import * as maptalks from 'maptalks' +const Coordinate = maptalks.Coordinate + +class PlotPoint extends maptalks.Marker { + constructor (coordinates, points, options = {}) { + super(coordinates, options) + this.type = 'PlotPoint' + this._coordinates = [] + if (coordinates) { + this._points = coordinates || [] + this.setCoordinates(coordinates) + } + } + + _generate () { + if (this._points) { + this.setCoordinates(this._points) + } + } + + /** + * 获取geom类型 + * @returns {string} + */ + getPlotType () { + return this.type + } + + /** + * 获取控制点 + * @returns {Array|*} + */ + getPoints () { + return this._points + } + + /** + * set point + * @param coordinates + */ + setPoints (coordinates) { + this._points = !coordinates ? [] : coordinates + if (this._points.length >= 1) { + this._generate() + } + } + + _exportGeoJSONGeometry () { + const points = this.getCoordinates() + const coordinates = Coordinate.toNumberArrays(points) + return { + 'type': 'Point', + 'coordinates': coordinates + } + } + + _toJSON (options) { + const opts = maptalks.Util.extend({}, options) + const coordinates = this.getCoordinates() + opts.geometry = false + const feature = this.toGeoJSON(opts) + feature['geometry'] = { + 'type': 'Point' + } + return { + 'feature': feature, + 'subType': 'PlotPoint', + 'coordinates': coordinates, + 'points': this.getPoints() + } + } + + static fromJSON (json) { + const feature = json['feature'] + const _geometry = new PlotPoint(json['coordinates'], json['points'], json['options']) + _geometry.setProperties(feature['properties']) + return _geometry + } +} + +PlotPoint.registerJSONType('PlotPoint') + +export default PlotPoint diff --git a/src/geometry/Polygon/GatheringPlace.js b/src/geometry/Polygon/GatheringPlace.js index fe9d335..26d4b09 100644 --- a/src/geometry/Polygon/GatheringPlace.js +++ b/src/geometry/Polygon/GatheringPlace.js @@ -6,12 +6,8 @@ import * as maptalks from 'maptalks' import * as Constants from '../../Constants' -import { - Mid, - getThirdPoint, - getBisectorNormals, - getCubicValue -} from '../helper/index' +import {getMiddlePoint, mathBaseDistance} from '../helper/common' +import {getThirdPoint, getBisectorNormals, getCubicValue} from '../helper/index' const Coordinate = maptalks.Coordinate class GatheringPlace extends maptalks.Polygon { constructor (coordinates, points, options = {}) { @@ -42,13 +38,12 @@ class GatheringPlace extends maptalks.Polygon { let _points = Coordinate.toNumberArrays(this._points) if (count < 2) return if (count === 2) { - let mid = Mid(_points[0], _points[1]) - const measurer = this._getMeasurer() - const distance = measurer.measureLength(Coordinate.toCoordinates(_points[0]), Coordinate.toCoordinates(mid)) / 0.9 - let pnt = getThirdPoint(measurer, _points[0], mid, Constants.HALF_PI, distance, true) + let mid = getMiddlePoint(_points[0], _points[1]) + const distance = mathBaseDistance(_points[0], mid) / 0.9 + let pnt = getThirdPoint(_points[0], mid, Constants.HALF_PI, distance, true) _points = [_points[0], pnt, _points[1]] } - let mid = Mid(_points[0], _points[2]) + let mid = getMiddlePoint(_points[0], _points[2]) _points.push(mid, _points[0], _points[1]) let [normals, pnt1, pnt2, pnt3, pList] = [[], undefined, undefined, undefined, []] for (let i = 0; i < _points.length - 2; i++) { diff --git a/src/geometry/Polygon/Lune.js b/src/geometry/Polygon/Lune.js index 615070f..751937f 100644 --- a/src/geometry/Polygon/Lune.js +++ b/src/geometry/Polygon/Lune.js @@ -5,14 +5,8 @@ */ import * as maptalks from 'maptalks' import * as Constants from '../../Constants' -import { - Mid, - getThirdPoint, - isClockWise, - getAzimuth, - getArcPoints, - getCircleCenterOfThreePoints -} from '../helper/index' +import {getArcPoints, getMiddlePoint, mathDistance, mathBaseDistance} from '../helper/common' +import {getThirdPoint, isClockWise, getAzimuth, getCircleCenterOfThreePoints} from '../helper/index' const Coordinate = maptalks.Coordinate class Lune extends maptalks.Polygon { constructor (coordinates, points, options = {}) { @@ -38,21 +32,19 @@ class Lune extends maptalks.Polygon { * @private */ _generate () { + const measurer = this._getMeasurer() const count = this._points.length let _points = Coordinate.toNumberArrays(this._points) if (count < 2) return - const measurer = this._getMeasurer() if (count === 2) { - let mid = Mid(_points[0], _points[1]) - let pnt = getThirdPoint( - measurer, _points[0], mid, Constants.HALF_PI, - measurer.measureLength(Coordinate.toCoordinates(_points[0]), Coordinate.toCoordinates(mid)) - ) + let mid = getMiddlePoint(_points[0], _points[1]) + let d = mathBaseDistance(_points[0], mid) + let pnt = getThirdPoint(_points[0], mid, Constants.HALF_PI, d) _points.push(pnt) } let [pnt1, pnt2, pnt3, startAngle, endAngle] = [_points[0], _points[1], _points[2], undefined, undefined] let center = getCircleCenterOfThreePoints(pnt1, pnt2, pnt3) - let radius = measurer.measureLength(Coordinate.toCoordinates(pnt1), Coordinate.toCoordinates(center)) + let radius = mathDistance(measurer, pnt1, center) let angle1 = getAzimuth(pnt1, center) let angle2 = getAzimuth(pnt2, center) if (isClockWise(pnt1, pnt2, pnt3)) { diff --git a/src/geometry/Polygon/Sector.js b/src/geometry/Polygon/Sector.js index 64ff143..4162d69 100644 --- a/src/geometry/Polygon/Sector.js +++ b/src/geometry/Polygon/Sector.js @@ -5,10 +5,8 @@ */ import * as maptalks from 'maptalks' -import { - getAzimuth, - getArcPoints -} from '../helper/index' +import { getArcPoints, mathDistance } from '../helper/common' +import { getAzimuth } from '../helper/index' const Coordinate = maptalks.Coordinate class Sector extends maptalks.Polygon { @@ -43,7 +41,7 @@ class Sector extends maptalks.Polygon { } else { let [center, pnt2, pnt3] = [_points[0], _points[1], _points[2]] const measurer = this._getMeasurer() - const radius = measurer.measureLength(Coordinate.toCoordinates(pnt2), Coordinate.toCoordinates(center)) + const radius = mathDistance(measurer, pnt2, center) let startAngle = getAzimuth(pnt2, center) let endAngle = getAzimuth(pnt3, center) let pList = getArcPoints(measurer, center, radius, startAngle, endAngle) diff --git a/src/geometry/helper/common.js b/src/geometry/helper/common.js index 9bae64c..49f379b 100644 --- a/src/geometry/helper/common.js +++ b/src/geometry/helper/common.js @@ -1,233 +1,120 @@ -import * as Constants from '../../Constants' -// import * as maptalks from 'maptalks' -// const Coordinate = maptalks.Coordinate +import * as maptalks from 'maptalks' +import {getAzimuth} from './index' +const Coordinate = maptalks.Coordinate /** - * 计算两个坐标之间的距离 + * 获取两点中间位置 * @param point1 * @param point2 - * @returns {number} - * @constructor - */ -const mathDistance = (point1, point2) => { - return (Math.sqrt(Math.pow((point1['x'] - point2['x']), 2) + Math.pow((point1['y'] - point2['y']), 2))) -} - -/** - * 求取两个坐标的中间值 - * @param point1 - * @param point2 - * @returns {[*,*]} - * @constructor - */ -const getMiddlePoint = (point1, point2) => { - return [(point1['x'] + point2['x']) / 2, (point1['y'] + point2['y']) / 2] -} - -/** - * 判断是否是顺时针 - * @param point1 - * @param point2 - * @param point3 - * @returns {boolean} - */ -const isClockWise = (point1, point2, point3) => { - return ((point3['y'] - point1['y']) * (point2['x'] - point1['x']) > (point2['y'] - point1['y']) * (point3['x'] - point1['x'])) -} - -/** - * 获取立方值 - * @param t - * @param startPnt - * @param cPnt1 - * @param cPnt2 - * @param endPnt - * @returns {[*,*]} - */ -const getCubicValue = (t, startPnt, cPnt1, cPnt2, endPnt) => { - t = Math.max(Math.min(t, 1), 0) - let [tp, t2] = [(1 - t), (t * t)] - let t3 = t2 * t - let tp2 = tp * tp - let tp3 = tp2 * tp - let x = (tp3 * startPnt['x']) + (3 * tp2 * t * cPnt1['x']) + (3 * tp * t2 * cPnt2['x']) + (t3 * endPnt['x']) - let y = (tp3 * startPnt['y']) + (3 * tp2 * t * cPnt1['y']) + (3 * tp * t2 * cPnt2['y']) + (t3 * endPnt['y']) - return [x, y] -} - -/** - * getBisectorNormals - * @param t - * @param point1 - * @param point2 - * @param point3 - * @returns {[*,*]} - */ -const getBisectorNormals = (t, point1, point2, point3) => { - let normal = getNormal(point1, point2, point3) - let [bisectorNormalRight, bisectorNormalLeft, dt, x1, y1, x2, y2] = [null, null, null, null, null, null, null] - let dist = Math.sqrt(normal[0] * normal[0] + normal[1] * normal[1]) - let uX = normal[0] / dist - let uY = normal[1] / dist - let d1 = mathDistance(point1, point2) - let d2 = mathDistance(point2, point3) - if (dist > Constants.ZERO_TOLERANCE) { - if (isClockWise(point1, point2, point3)) { - dt = t * d1 - x1 = point2['x'] - dt * uY - y1 = point2['y'] + dt * uX - bisectorNormalRight = [x1, y1] - dt = t * d2 - x2 = point2['x'] + dt * uY - y2 = point2['y'] - dt * uX - bisectorNormalLeft = [x2, y2] - } else { - dt = t * d1 - x1 = point2['x'] + dt * uY - y1 = point2['y'] - dt * uX - bisectorNormalRight = [x1, y1] - dt = t * d2 - x2 = point2['x'] - dt * uY - y2 = point2['y'] + dt * uX - bisectorNormalLeft = [x2, y2] - } - } else { - x1 = point2['x'] + t * (point1['x'] - point2['x']) - y1 = point2['y'] + t * (point1['y'] - point2['y']) - bisectorNormalRight = [x1, y1] - x2 = point2['x'] + t * (point3['x'] - point2['x']) - y2 = point2['y'] + t * (point3['y'] - point2['y']) - bisectorNormalLeft = [x2, y2] - } - return [bisectorNormalRight, bisectorNormalLeft] -} - -/** - * 获取默认三点的内切圆 - * @param point1 - * @param point2 - * @param point3 * @returns {*[]} */ -const getNormal = (point1, point2, point3) => { - let dX1 = point1['x'] - point2['x'] - let dY1 = point1['y'] - point2['y'] - let d1 = Math.sqrt(dX1 * dX1 + dY1 * dY1) - dX1 /= d1 - dY1 /= d1 - let dX2 = point3['x'] - point2['x'] - let dY2 = point3['y'] - point2['y'] - let d2 = Math.sqrt(dX2 * dX2 + dY2 * dY2) - dX2 /= d2 - dY2 /= d2 - let uX = dX1 + dX2 - let uY = dY1 + dY2 - return [uX, uY] +const getMiddlePoint = (point1, point2) => { + return [(point1[0] + point2[0]) / 2, (point1[1] + point2[1]) / 2] } /** - * 获取左边控制点 - * @param controlPoints - * @param offset + * 计算距离 + * @param measurer + * @param pnt1 + * @param pnt2 + * @returns {*} + */ +const mathDistance = (measurer, pnt1, pnt2) => { + return measurer.measureLength(Coordinate.toCoordinates(pnt1), Coordinate.toCoordinates(pnt2)) +} + +/** + * 平面坐标距离 + * @param pnt1 + * @param pnt2 + * @returns {number} + */ +const mathBaseDistance = (pnt1, pnt2) => { + return (Math.sqrt(Math.pow((pnt1[0] - pnt2[0]), 2) + Math.pow((pnt1[1] - pnt2[1]), 2))) +} + +/** + * 计算点集合的总距离 + * @param measurer + * @param points + * @returns {number} + */ +const wholeDistance = (measurer, points) => { + let distance = 0 + if (points && Array.isArray(points) && points.length > 0) { + points.forEach((item, index) => { + if (index < points.length - 1) { + distance += (mathDistance(measurer, item, points[index + 1])) + } + }) + } + return distance +} +/** + * 获取基础长度 + * @param measurer + * @param points + * @returns {number} + */ +const getBaseLength = (measurer, points) => { + return Math.pow(wholeDistance(measurer, points), 0.99) +} + +/** + * 根据起止点和旋转方向求取第三个点 + * @param measurer + * @param startPnt + * @param endPnt + * @param angle + * @param distance + * @param clockWise * @returns {[*,*]} */ -const getLeftMostControlPoint = (controlPoints, offset) => { - let [point1, point2, point3, controlX, controlY] = [controlPoints[0], controlPoints[1], controlPoints[2], null, null] - let points = getBisectorNormals(0, point1, point2, point3) - let normalRight = points[0] - let normal = getNormal(point1, point2, point3) - let dist = Math.sqrt(normal[0] * normal[0] + normal[1] * normal[1]) - if (dist > Constants.ZERO_TOLERANCE) { - let mid = getMiddlePoint(point1, point2) - let pX = point1[0] - mid[0] - let pY = point1[1] - mid[1] - let d1 = mathDistance(point1, point2) - let n = 2.0 / d1 - let nX = -n * pY - let nY = n * pX - let a11 = nX * nX - nY * nY - let a12 = 2 * nX * nY - let a22 = nY * nY - nX * nX - let dX = normalRight[0] - mid[0] - let dY = normalRight[1] - mid[1] - controlX = mid[0] + a11 * dX + a12 * dY - controlY = mid[1] + a12 * dX + a22 * dY - } else { - controlX = point1[0] + offset * (point2[0] - point1[0]) - controlY = point1[1] + offset * (point2[1] - point1[1]) - } - return [controlX, controlY] +const getThirdPoint = (measurer, startPnt, endPnt, angle, distance, clockWise) => { + let azimuth = getAzimuth(measurer, startPnt, endPnt) + let alpha = clockWise ? (azimuth + angle) : (azimuth - angle) + let dx = distance * Math.cos(alpha) + let dy = distance * Math.sin(alpha) + const vertex = measurer.locate({ + 'x': endPnt[0], + 'y': endPnt[1] + }, dx, dy) + return [vertex['x'], vertex['y']] } /** - * 获取右边控制点 - * @param controlPoints - * @param t - * @returns {[*,*]} - */ -const getRightMostControlPoint = (controlPoints, t) => { - let count = controlPoints.length - let point1 = controlPoints[count - 3] - let point2 = controlPoints[count - 2] - let point3 = controlPoints[count - 1] - let pnts = getBisectorNormals(0, point1, point2, point3) - let normalLeft = pnts[1] - let normal = getNormal(point1, point2, point3) - let dist = Math.sqrt(normal[0] * normal[0] + normal[1] * normal[1]) - let [controlX, controlY] = [null, null] - if (dist > Constants.ZERO_TOLERANCE) { - let mid = getMiddlePoint(point2, point3) - let pX = point3[0] - mid[0] - let pY = point3[1] - mid[1] - let d1 = mathDistance(point2, point3) - let n = 2.0 / d1 - let nX = -n * pY - let nY = n * pX - let a11 = nX * nX - nY * nY - let a12 = 2 * nX * nY - let a22 = nY * nY - nX * nX - let dX = normalLeft[0] - mid[0] - let dY = normalLeft[1] - mid[1] - controlX = mid[0] + a11 * dX + a12 * dY - controlY = mid[1] + a12 * dX + a22 * dY - } else { - controlX = point3[0] + t * (point2[0] - point3[0]) - controlY = point3[1] + t * (point2[1] - point3[1]) - } - return [controlX, controlY] -} - -/** - * 插值曲线点 - * @param offset - * @param controlPoints + * 插值弓形线段点 + * @param measurer + * @param center + * @param radius + * @param startAngle + * @param endAngle + * @param numberOfPoints * @returns {null} */ -const getCurvePoints = (offset, controlPoints) => { - let leftControl = getLeftMostControlPoint(controlPoints, offset) - let [point1, point2, point3, normals, points] = [null, null, null, [leftControl], []] - for (let i = 0; i < controlPoints.length - 2; i++) { - [point1, point2, point3] = [controlPoints[i], controlPoints[i + 1], controlPoints[i + 2]] - let normalPoints = getBisectorNormals(offset, point1, point2, point3) - normals = normals.concat(normalPoints) - } - let rightControl = getRightMostControlPoint(controlPoints, offset) - if (rightControl) { - normals.push(rightControl) - } - for (let i = 0; i < controlPoints.length - 1; i++) { - point1 = controlPoints[i] - point2 = controlPoints[i + 1] - points.push(point1) - for (let t = 0; t < Constants.FITTING_COUNT; t++) { - let pnt = getCubicValue(t / Constants.FITTING_COUNT, point1, normals[i * 2], normals[i * 2 + 1], point2) - points.push(pnt) - } - points.push(point2) +const getArcPoints = (measurer, center, radius, startAngle, endAngle, numberOfPoints = 100) => { + let [dx, dy, points, angleDiff] = [null, null, [], (endAngle - startAngle)] + angleDiff = ((angleDiff < 0) ? (angleDiff + (Math.PI * 2)) : angleDiff) + for (let i = 0; i < numberOfPoints; i++) { + const rad = angleDiff * i / numberOfPoints + startAngle + dx = radius * Math.cos(rad) + dy = radius * Math.sin(rad) + const vertex = measurer.locate({ + 'x': center[0], + 'y': center[1] + }, dx, dy) + points.push([vertex['x'], vertex['y']]) } return points } export { - getCurvePoints + getMiddlePoint, + getAzimuth, + mathDistance, + wholeDistance, + getBaseLength, + getArcPoints, + getThirdPoint, + mathBaseDistance } diff --git a/src/geometry/helper/index.js b/src/geometry/helper/index.js index 490b58e..5ed8aa7 100644 --- a/src/geometry/helper/index.js +++ b/src/geometry/helper/index.js @@ -134,19 +134,6 @@ export const isClockWise = (pnt1, pnt2, pnt3) => { return ((pnt3[1] - pnt1[1]) * (pnt2[0] - pnt1[0]) > (pnt2[1] - pnt1[1]) * (pnt3[0] - pnt1[0])) } -/** - * 获取线上的点 - * @param t - * @param startPnt - * @param endPnt - * @returns {[*,*]} - */ -export const getPointOnLine = (t, startPnt, endPnt) => { - let x = startPnt[0] + (t * (endPnt[0] - startPnt[0])) - let y = startPnt[1] + (t * (endPnt[1] - startPnt[1])) - return [x, y] -} - /** * 获取立方值 * @param t @@ -169,7 +156,6 @@ export const getCubicValue = (t, startPnt, cPnt1, cPnt2, endPnt) => { /** * 根据起止点和旋转方向求取第三个点 - * @param measurer * @param startPnt * @param endPnt * @param angle @@ -177,40 +163,30 @@ export const getCubicValue = (t, startPnt, cPnt1, cPnt2, endPnt) => { * @param clockWise * @returns {[*,*]} */ -export const getThirdPoint = (measurer, startPnt, endPnt, angle, distance, clockWise) => { +export const getThirdPoint = (startPnt, endPnt, angle, distance, clockWise) => { let azimuth = getAzimuth(startPnt, endPnt) let alpha = clockWise ? (azimuth + angle) : (azimuth - angle) let dx = distance * Math.cos(alpha) let dy = distance * Math.sin(alpha) - const vertex = measurer.locate({ - 'x': endPnt[0], - 'y': endPnt[1] - }, dx, dy) - return [vertex['x'], vertex['y']] + return ([endPnt[0] + dx, endPnt[1] + dy]) } /** * 插值弓形线段点 - * @param measurer * @param center * @param radius * @param startAngle * @param endAngle - * @param numberOfPoints * @returns {null} */ -export const getArcPoints = (measurer, center, radius, startAngle, endAngle, numberOfPoints = 100) => { - let [dx, dy, points, angleDiff] = [null, null, [], (endAngle - startAngle)] +export const getArcPoints = (center, radius, startAngle, endAngle) => { + let [x, y, points, angleDiff] = [null, null, [], (endAngle - startAngle)] angleDiff = ((angleDiff < 0) ? (angleDiff + (Math.PI * 2)) : angleDiff) - for (let i = 0; i < numberOfPoints; i++) { - const rad = angleDiff * i / numberOfPoints + startAngle - dx = radius * Math.cos(rad) - dy = radius * Math.sin(rad) - const vertex = measurer.locate({ - 'x': center[0], - 'y': center[1] - }, dx, dy) - points.push([vertex['x'], vertex['y']]) + for (let i = 0; i < 200; i++) { + const angle = startAngle + angleDiff * i / 200 + x = center[0] + radius * Math.cos(angle) + y = center[1] + radius * Math.sin(angle) + points.push([x, y]) } return points } diff --git a/src/geometry/index.js b/src/geometry/index.js index e24b4ac..db03166 100644 --- a/src/geometry/index.js +++ b/src/geometry/index.js @@ -3,7 +3,7 @@ * @desc 标绘图形构造类 */ import * as maptalks from 'maptalks' - +import PlotPoint from './Point/Point' import Arc from './Polyline/Arc' import Curve from './Polyline/Curve' import Polyline from './Polyline/Polyline' @@ -40,15 +40,15 @@ RegisterModes[PlotTypes.POINT] = { 'limitClickCount': 1, 'action': ['click'], 'create': function (path) { - return new maptalks.Marker(path[0]) + return new PlotPoint(path[0]) }, 'update': function (path, geometry) { + geometry.setPoints(path) }, 'generate': function (geometry) { return geometry } } -// ok RegisterModes[PlotTypes.ARC] = { 'freehand': false, 'limitClickCount': 3, @@ -63,7 +63,6 @@ RegisterModes[PlotTypes.ARC] = { return geometry } } -// ok RegisterModes[PlotTypes.CURVE] = { 'freehand': false, 'action': ['click', 'mousemove', 'dblclick'], @@ -77,7 +76,6 @@ RegisterModes[PlotTypes.CURVE] = { return geometry } } -// ok RegisterModes[PlotTypes.POLYLINE] = { 'freehand': false, 'action': ['click', 'mousemove', 'dblclick'], @@ -91,7 +89,6 @@ RegisterModes[PlotTypes.POLYLINE] = { return geometry } } -// ok RegisterModes[PlotTypes.FREE_LINE] = { 'freehand': true, 'action': ['mousedown', 'drag', 'mouseup'], @@ -118,7 +115,6 @@ RegisterModes[PlotTypes.ATTACK_ARROW] = { return geometry } } -// ok RegisterModes[PlotTypes.DOUBLE_ARROW] = { 'freehand': false, 'limitClickCount': 4, @@ -133,7 +129,6 @@ RegisterModes[PlotTypes.DOUBLE_ARROW] = { return geometry } } -// ok RegisterModes[PlotTypes.FINE_ARROW] = { 'freehand': false, 'limitClickCount': 2, @@ -148,7 +143,6 @@ RegisterModes[PlotTypes.FINE_ARROW] = { return geometry } } -// ok RegisterModes[PlotTypes.ASSAULT_DIRECTION] = { 'freehand': false, 'limitClickCount': 2, @@ -163,7 +157,6 @@ RegisterModes[PlotTypes.ASSAULT_DIRECTION] = { return geometry } } -// fixme error RegisterModes[PlotTypes.SQUAD_COMBAT] = { 'freehand': false, 'action': ['click', 'mousemove', 'dblclick'], @@ -204,7 +197,6 @@ RegisterModes[PlotTypes.TAILED_SQUAD_COMBAT] = { return geometry } } -// ok RegisterModes[PlotTypes.STRAIGHT_ARROW] = { 'freehand': false, 'limitClickCount': 2, @@ -219,7 +211,6 @@ RegisterModes[PlotTypes.STRAIGHT_ARROW] = { return geometry } } -// ok -2 RegisterModes[PlotTypes.CLOSED_CURVE] = { 'freehand': false, 'action': ['click', 'mousemove', 'dblclick'], @@ -233,7 +224,6 @@ RegisterModes[PlotTypes.CLOSED_CURVE] = { return geometry } } -// ok RegisterModes[PlotTypes.LUNE] = { 'freehand': false, 'limitClickCount': 3, @@ -248,7 +238,6 @@ RegisterModes[PlotTypes.LUNE] = { return geometry } } -// ok RegisterModes[PlotTypes.SECTOR] = { 'freehand': false, 'limitClickCount': 3, @@ -263,7 +252,6 @@ RegisterModes[PlotTypes.SECTOR] = { return geometry } } -// ok RegisterModes[PlotTypes.POLYGON] = { 'freehand': false, 'action': ['click', 'mousemove', 'dblclick'], @@ -277,7 +265,6 @@ RegisterModes[PlotTypes.POLYGON] = { return geometry } } -// ok RegisterModes[PlotTypes.RECTANGLE] = { 'freehand': false, 'limitClickCount': 2, @@ -292,7 +279,6 @@ RegisterModes[PlotTypes.RECTANGLE] = { return geometry } } -// ok RegisterModes[PlotTypes.FREE_POLYGON] = { 'freehand': true, 'action': ['mousedown', 'drag', 'mouseup'], @@ -306,7 +292,6 @@ RegisterModes[PlotTypes.FREE_POLYGON] = { return geometry } } -// ok RegisterModes[PlotTypes.GATHERING_PLACE] = { 'freehand': false, 'limitClickCount': 3, @@ -321,7 +306,6 @@ RegisterModes[PlotTypes.GATHERING_PLACE] = { return geometry } } -// ok RegisterModes[PlotTypes.CURVEFLAG] = { 'freehand': false, 'limitClickCount': 2, @@ -336,7 +320,6 @@ RegisterModes[PlotTypes.CURVEFLAG] = { return geometry } } -// ok RegisterModes[PlotTypes.RECTFLAG] = { 'freehand': false, 'limitClickCount': 2, @@ -351,7 +334,6 @@ RegisterModes[PlotTypes.RECTFLAG] = { return geometry } } -// ok RegisterModes[PlotTypes.TRIANGLEFLAG] = { 'freehand': false, 'limitClickCount': 2, @@ -366,7 +348,6 @@ RegisterModes[PlotTypes.TRIANGLEFLAG] = { return geometry } } -// 圆 RegisterModes[PlotTypes.CIRCLE] = { 'freehand': true, 'action': ['mousedown', 'drag', 'mouseup'], @@ -382,7 +363,6 @@ RegisterModes[PlotTypes.CIRCLE] = { return geometry } } -// 椭圆 RegisterModes[PlotTypes.ELLIPSE] = { 'freehand': true, 'action': ['mousedown', 'drag', 'mouseup'], diff --git a/src/utils/mixin.js b/src/utils/mixin.js deleted file mode 100644 index 7cc72b9..0000000 --- a/src/utils/mixin.js +++ /dev/null @@ -1,21 +0,0 @@ -const copyProperties = (target, source) => { - for (let key of Reflect.ownKeys(source)) { - if (!key.match(/^(?:constructor|prototype|arguments|caller|name|bind|call|apply|toString|length)$/)) { - let desc = Object.getOwnPropertyDescriptor(source, key) - Object.defineProperty(target, key, desc) - } - } -} - -const mixin = (...mixins) => { - class Mix {} - // 以编程方式给Mix类添加mixin的所有方法 - for (let key in mixins) { - let mixin = mixins[key] - copyProperties(Mix, mixin) - copyProperties(Mix.prototype, mixin.prototype) - } - return Mix -} - -export default mixin