Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 草皮交叉问题_Javascript_Algorithm_Gps_Turfjs - Fatal编程技术网

Javascript 草皮交叉问题

Javascript 草皮交叉问题,javascript,algorithm,gps,turfjs,Javascript,Algorithm,Gps,Turfjs,我在寻找两个多边形是否与草皮相交时遇到了一些问题 我的代码的目的是什么? 给定一个资产的位置(坐标)、视野(在-180和180之间,当然是模拟的)和距离(我称之为视野范围;比方说1公里),我想知道资产是否可以“看到”另一个资产是否在范围内。想象一下,一头狮子遇到另一头狮子,他们会一看见就打架 守则: 函数计算视野(原点、视野、距离){ let turf=需要(“@turf/turf”); var pontoOrigem=turp.point([origin.long,origin.lat])

我在寻找两个多边形是否与草皮相交时遇到了一些问题

我的代码的目的是什么?

  • 给定一个资产的位置(坐标)、视野(在-180和180之间,当然是模拟的)和距离(我称之为视野范围;比方说1公里),我想知道资产是否可以“看到”另一个资产是否在范围内。想象一下,一头狮子遇到另一头狮子,他们会一看见就打架
守则:

函数计算视野(原点、视野、距离){
let turf=需要(“@turf/turf”);
var pontoOrigem=turp.point([origin.long,origin.lat]);//设置原点
var pontosDestino=[];//准备包含要相交的多边形制作的数组
如果(campo.length==2){
var轴承=90;//目前始终为90
var选项={units:'km'};
对于(var轴承=fov[0];轴承0)pontosDestino.push(pontosDestino[0]);//等于第一个元素,以便turf不会抱怨最后一个元素不等于第一个元素
}              
返回pontosDestino;
}
var poly1=calculateFOV({'long':-7.9554464,'lat':37.0100746},[-180180],1);
var poly2=calculateFOV({'long':-7.9322,'lat':37.0194},[-180180],1);
poly1退货:

[
[ -7.955446399999999, 37.01006560679637 ],
[ -7.955448355660866, 37.010065743423326 ],
[ -7.955450251899985, 37.01006614915285 ],
[ -7.955452031101114, 37.01006681165707 ],
[ -7.955453639204135, 37.010067710806105 ],
[ -7.9554550273476625, 37.01006881927983 ],
[ -7.955456153353656, 37.01007010339779 ],
[ -7.955456983008984, 37.01007152414274 ],
[ -7.95545749110498, 37.010073038346064 ],
[ -7.955457662203383, 37.01007459999947 ],
[ -7.9554574911054345, 37.01007616165291 ],
[ -7.955456983009841, 37.01007767585633 ],
[ -7.955456153354809, 37.01007909660142 ],
[ -7.955455027348974, 37.01008038071956 ],
[ -7.955453639205447, 37.01008148919346 ],
[ -7.9554520311022685, 37.01008238834268 ],
[ -7.955450251900842, 37.01008305084704 ],
[ -7.9554483556613205, 37.01008345657665 ],
[ -7.955446399999999, 37.010083593203646 ],
[ -7.955444444338677, 37.01008345657665 ],
[ -7.955442548099154, 37.01008305084704 ],
[ -7.95544076889773, 37.01008238834268 ],
[ -7.95543916079455, 37.01008148919346 ],
[ -7.955437772651024, 37.01008038071956 ],
[ -7.95543664664519, 37.01007909660142 ],
[ -7.955435816990157, 37.01007767585633 ],
[ -7.955435308894563, 37.01007616165291 ],
[ -7.955435137796615, 37.01007459999947 ],
[ -7.955435308895018, 37.010073038346064 ],
[ -7.955435816991014, 37.01007152414274 ],
[ -7.9554366466463415, 37.01007010339779 ],
[ -7.955437772652336, 37.01006881927983 ],
[ -7.955439160795862, 37.010067710806105 ],
[ -7.955440768898884, 37.01006681165707 ],
[ -7.955442548100012, 37.01006614915285 ],
[ -7.955444444339133, 37.010065743423326 ],
[ -7.955446399999999, 37.01006560679637 ]
]
poly2返回:

[
[ -7.9322, 37.01939100679636 ],
[ -7.932201955900867, 37.01939114342331 ],
[ -7.9322038523726945, 37.019391549152836 ],
[ -7.9322056317921685, 37.01939221165705 ],
[ -7.932207240092537, 37.0193931108061 ],
[ -7.9322086284064195, 37.01939421927982 ],
[ -7.932209754550595, 37.019395503397774 ],
[ -7.932210584307741, 37.019396924142725 ],
[ -7.93221109246609, 37.01939843834605 ],
[ -7.932211263585491, 37.019399999999465 ],
[ -7.932211092466545, 37.0194015616529 ],
[ -7.932210584308598, 37.019403075856324 ],
[ -7.932209754551749, 37.01940449660141 ],
[ -7.932208628407731, 37.01940578071955 ],
[ -7.932207240093851, 37.01940688919345 ],
[ -7.932205631793323, 37.019407788342676 ],
[ -7.932203852373552, 37.01940845084703 ],
[ -7.932201955901323, 37.019408856576646 ],
[ -7.9322, 37.01940899320363 ],
[ -7.932198044098676, 37.019408856576646 ],
[ -7.932196147626447, 37.01940845084703 ],
[ -7.932194368206678, 37.019407788342676 ],
[ -7.932192759906149, 37.01940688919345 ],
[ -7.9321913715922685, 37.01940578071955 ],
[ -7.9321902454482505, 37.01940449660141 ],
[ -7.932189415691402, 37.019403075856324 ],
[ -7.932188907533454, 37.0194015616529 ],
[ -7.932188736414509, 37.019399999999465 ],
[ -7.93218890753391, 37.01939843834605 ],
[ -7.932189415692259, 37.019396924142725 ],
[ -7.932190245449405, 37.019395503397774 ],
[ -7.93219137159358, 37.01939421927982 ],
[ -7.932192759907462, 37.0193931108061 ],
[ -7.932194368207832, 37.01939221165705 ],
[ -7.932196147627304, 37.019391549152836 ],
[ -7.932198044099133, 37.01939114342331 ],
[ -7.9322, 37.01939100679636 ]
]
节点上的turf.intersect(poly1,poly2)将退出,并显示以下消息:

错误:geojson必须是有效的要素或几何体对象 在getGeom(/home/pedroh/Documentos/Faro/node_modules/@turp/turp/turp.js:1909:11) 在Object.intersect$2[作为intersect](/home/pedroh/Documentos/Faro/node_modules/@trub/trub/trub.js:43369:17) 反对。(/home/pedroh/Documentos/Faro/_test_turp.js:11:6)

然后使用第二个版本的函数

函数计算视野(原点、视野、距离){
let turf=需要(“@turf/turf”);
var pontoOrigem=turp.point([origin.long,origin.lat]);//设置原点
var pontosDestino=[];//准备包含要相交的多边形制作的数组
如果(campo.length==2){
var轴承=90;//目前始终为90
var选项={units:'km'};
对于(var轴承=fov[0];轴承0)pontosDestino.push(pontosDestino[0]);//等于第一个元素,以便turf不会抱怨最后一个元素不等于第一个元素
}              
返回pontosDestino;
}
var poly1=calculateFOV({'long':-7.9554464,'lat':37.0100746},[-180180],1);
var poly2=calculateFOV({'long':-7.9322,'lat':37.0194},[-180180],1);
poly1和poly2