我正在检查Stackoverflow和许多其他页面,以找到一个Javascript(或JQuery)解决方案,告诉我用户(当前GPS位置)是在地图上预定义的矩形内部还是外部。圆形和正方形有很多解决方案,但我找不到矩形的解决方案。 此外,矩形不得与f.e平行。赤道。它可以有任何可能的角度。 进行内/外计算需要哪个矩形参数?有谁知道一个Javascript解决方案来解决这个问题?
答案 0 :(得分:1)
要知道一个点是否在您需要的2D平面图中的矩形内:
点(X,Y)位于矩形内部:
或者在javascript中:
<form class="schedulerBody form-horizontal" id="{{sourceCleaned}}">
<div class="form-group">
<label class="col-sm-3 control-label">{{t "templates.scheduler.fireEvery"}}</label>
<div class="col-sm-8">
<div class="form-inline">
<select class="liveSyncSchedule form-control"></select>
<span>{{t "templates.scheduler.seconds"}}</span>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-8">
<div class="checkbox">
<label>
<input type="checkbox" />{{t "templates.scheduler.enabled"}}
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-8">
<div class="checkbox">
<label>
<input type="checkbox" />{{t "templates.scheduler.persisted"}}
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">{{t "templates.scheduler.misfirePolicy"}}</label>
<div class="col-sm-8">
<select class="misfirePolicy form-control">
<option value="fireAndProceed">{{t "templates.scheduler.fireAndProceed"}}</option>
<option value="doNothing" selected>{{t "templates.scheduler.doNothing"}}</option>
</select>
</div>
</div>
</form>
使用它:
function isInRectangle(x, y, x0, y0, a, l1, l2) {
var v1 = (x-x0)*Math.cos(a) - (y-y0)*Math.sin(a);
var v2 = (x-x0)*Math.sin(a) + (y-y0)*Math.cos(a);
return v1 >= 0 && v1 <= l1 && v2 >= 0 && v2 <= l2;
}