用于矩形内部或外部用户的Javascript解决方案
Javascript solution for user being inside or outside a rectangle
我检查了Stackoverflow和许多其他页面,以找到一个Javascript(或JQuery)解决方案,该解决方案告诉我用户(其当前GPS位置)是在地图上的预定义矩形内部还是外部。圆形和正方形有很多解决方案,但我找不到矩形的解决方案。此外,矩形不得平行于赤道。它可以有任何可能的角度。进行内部/外部计算需要矩形的哪个参数?有人知道解决这个问题的Javascript解决方案吗?
要知道一个点是否在二维平面图中的矩形内,您需要:
- 矩形的一个点的位置:X0,Y0
- 矩形与水平轴的夹角:a
- 所述第一边的长度:L1
- 第二边的长度为L2
请参见此图纸。
当:时,点(X,Y)在矩形内
- 0>=(X-X0)*cos(a)-(Y-Y0)*sin(a)>=L1
- 0>=(X-X0)*sin(a)+(Y-Y0)*cos(a)>=L2
或者在javascript:中
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;
}
使用它:
var p = {x: /*user longitude*/, y: /*user latitude*/};
var p0 = {x: /*rect longitude*/, y: /*rect latitude*/};
var a = /*angle of the rect in rad*/;
var l1 = /*length of one side of the rectangle*/
var l2 = /*length of the second size*/
isInRectangle(p.x, p.y, p0.x, p0.y, a, l1, l2); // => return true if inside, false otherwise
相关文章:
- 使用javascript搜索具有用户输入的数组
- 使用javascript反复检查用户在facebook上的登录状态
- 如何使用JavaScript中的用户输入创建序列/序列
- javascript跨浏览器确定用户是否滚动到页面底部
- 将jQuery转换为用户脚本的普通Javascript时遇到问题
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 如何在ASP中为用户控件添加Javascript对象网
- Javascript没有't更新DOM,直到用户交互
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- Facebook Javascript API:'/我/相册'不适用于其他用户
- 如何在用户输入 javascript 时更改值
- 如何使用javascript localStorage保存用户选择并在不同的html页面中显示
- 如何在Javascript中创建一个所有用户都可以访问的变量
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 试图修改此javascript代码以减小弹出窗口的大小,或者在用户单击框外时关闭
- Acrobat DC 应用程序和用户 JavaScript 文件夹问题
- 401未经授权的错误读取Azure移动服务表作为认证的用户(Javascript)
- 用户/ Javascript格式化
- 通过'用户'javascript Ajax在laravel
- 在用户javascript中使用chrome.app.window.create