- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道如何使用圆半径查询从 MySQL 数据库中查找附近的位置,并且我也在另一个 SO 问题上给出了相同的答案 here .
但我现在想做一些不同的事情。这里发生的情况是查询返回从点中心开始的结果,其中包括整个半径圆。我希望只得到半圆的分数。我知道这是可能的,而且都是数学计算,而我在这方面有点弱,这就是为什么寻求专家帮助。
看到这张图片,它会给出非常清晰的想法。
正如您在图像中看到的那样,只需要前部位置,而不是后侧部分。需要忽略背面部分。此外,我还用不同的颜色划分了半径,使它们显示为区域 - 例如红色是区域 1,橙色是区域 2,黄色是区域 3。这是用于过滤数据(位置)的虚拟区域。
欢迎所有建议。
最佳答案
您可以使用半正弦/球余弦定律作为半径绘制线段内的点。然后使用 pointInPolygon() 只查找线段内的点。您还需要创建多边形的函数。
polySides = number of sides in polygon
pointLatArr = Lat of point in in polygon array
pointLngArr = Lng of point in in polygon array
dat.lat = Lat from Haversine results
dat.lng = Lng from Haversine results
if (pointInPolygonpolySides,pointLatArr,pointLngArr,dat.lat,dat.lng)){
var latlng = new google.maps.LatLng(dat.lat,dat.lng);
addMarker(latlng,dat.name);
bounds.extend(latlng);
}
function pointInPolygon(polySides,polyX,polyY,x,y) {
var j = polySides-1 ;
oddNodes = 0;
for (i=0; i<polySides; i++) {
if (polyY[i]<y && polyY[j]>=y || polyY[j]<y && polyY[i]>=y) {
if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x) {
oddNodes=!oddNodes;
}
}
j=i; }
return oddNodes;
}
线段多边形函数
function drawSegment(start,end,radius) {
var d2r = Math.PI / 180;
pointLatArr = new Array();
pointLngArr = new Array();
polyLatLngs = new Array(); // latLngs of polygon
var polyLat = (radius /3963.189) / d2r; // miles
var polyLng = polyLat / Math.cos(center.lat() * d2r);
var centerLatLng = new google.maps.LatLng(center.lat(),center.lng());//Center to start
pointLatArr.push(center.lat());
pointLngArr.push(center.lng());
polyLatLngs.push(centerLatLng);
bounds.extend(centerLatLng);
// Create polygon points (extra point to close polygon)
for (var i = start; i < end; i++) {
// Convert degrees to radians
var theta = i * d2r;
var pointLat = center.lat() + (polyLat * Math.sin(theta));
var pointLng = center.lng() + (polyLng * Math.cos(theta));
var pointLatLng = new google.maps.LatLng(
parseFloat(pointLat), parseFloat(pointLng));
polyLatLngs.push(pointLatLng);
pointLatArr.push(pointLat);
pointLngArr.push(pointLng);
bounds.extend(pointLatLng);
}
var centerLatLng = new google.maps.LatLng(center.lat(),center.lng());//End to center
polyLatLngs.push(centerLatLng);
pointLatArr.push(center.lat());
pointLngArr.push(center.lng());
polySides = polyLatLngs.length;
使用这种技术的 map }
参见Demo
关于mysql - 查找特定角度附近的位置 - 在圆形查询中仅考虑前面的半圆而不是后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357159/
在 flutter 打中,我想剪辑Container的可选部分以制作此小部件: 裁剪小部件,使其顶部和底部有两个半圆。 对于此裁剪的小部件的某些功能,我希望具有一些可选功能,例如: 剪裁顶部,该可选内
我怎样才能画这样的半圆? 代码: class DrawHalfCircleClipper extends CustomClipper { @override Path getClip(Size
下面是一个二值图像,我想在其中检测“山丘”、半圆、切口……在下图中的红色圆圈中。检测不一定要精确,我只需要知道图片中有这样的东西即可。我正在考虑使用一种线扫描方法并计算线上的黑色像素并用某种“聪明人”
有什么办法可以解决这个问题吗?我尝试更改 border-radius 值并进行了大量搜索,只是为了实现下图中的设计。我想我错过了一些东西,任何人都可以指出我的风格有什么问题。 这是代码。 #wrap
我正在尝试创建一个有 5 个线段的半圆,如下图所示,我可以在其中轻松调整各个线段之间的间距以及线段本身的大小。 CSS 半圆示例 我是前端开发的新手,但我尝试了几种资源,以便在来这里之前自己解决这个问
我做了一个半圆,我想按照我需要的百分比给它上色。文本的位置暂时无关紧要。我想要的是将 50% 的边框着色。稍后我将需要 70% 和 80%。我该怎么做? .info__radius__outline
我正在试验 SVG 元素。我正在尝试创建一个简单的半圆,但由于某种原因我的半圆旋转了?如何让半圆不旋转? 我的方法是: SVG“ Canvas ”为 400 x 400 像素,半圆的半径为 180 像
我有一个包含如下数字的实心圆圈: 我如何将它分成两个半圆,以便我可以在其中存储两个不同的数字,如下所示: 我的 CSS 如下: .oval { display: inline-block;
我正在开发一个 Asp.Net MVC 应用程序,其中有一个布局页面,我在其中看到一个像半圆的白色补丁,我试图删除但没有成功。 CSS html { background-color: bla
我需要在 WPF 中绘制一个半圆/半圆。知道怎么做吗?感谢您的任何提示! 最佳答案 ArcSegment将是一个很好的起点。 和here是如何在代码中使用它的一个很好的例子。 关于c# - WPF/C
我正在使用 Highcharts js,我正在尝试用 highCharts 绘制饼图这是一个半圆,里面嵌入了一些文本。 和到目前为止我所做的是 我的 html 标记是
我正在用一张婴儿的动画脸制作一些 CSS 动画,我正在尝试将嘴巴创建为特定的微笑形状。我需要的形状看起来像这样。注意左上角和右上角的圆 Angular : 你可以看到我到这里最近的。唯一缺少的是圆滑的
我正在尝试使用 rCharts 创建一个简单的半圆 donut 和 NVD3 JavaScript 库。下面提供了一个完整的 donut 的最小可重复示例。 library(rCharts) data
我正在尝试在我的 Angular 应用程序中创建一个 Highcharts 半圆圆环图。我已经安装了 Highcharts-ng 指令。无论出于何种原因,它似乎完全跳过了 plotOptions 部分
我是一名优秀的程序员,十分优秀!