- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找的解决方案是为 DWITHIN 请求将千米转换为度数的准确方法,或者让 GeoServer 识别请求中指定的单位以便能够直接以千米为单位传递。
我正在向 GeoServer 发出 WFS 请求以返回一定距离内的点(例如,在一个点的 3 公里内),但我的结果不准确。我目前正在使用 OpenLayers 版本 3.11.2 并运行 GeoServer 版本 2.6.2,并且还使用 2.7.1 进行了测试。
这是我用于 DWITHIN 的 CQL 过滤器,其中第 3 个参数是返回结果的半径的度值。我使用“%29”做了一个右括号,因为我在发出请求时遇到了被丢弃的问题。
CQL_FILTER=dwithin(the_geom,point(46.1379%20-60.1957),0.05577532499489729,meters%29
问题是 GeoServer 中存在一个错误,它只支持度数,即使我将单位声明为米。更多信息请点击此处 https://gis.stackexchange.com/questions/132251/dwithin-wfs-filter-is-not-working
我之前尝试过解决这个问题并达到了当时足够准确的比例,可以在此处阅读 Geoserver - filtering points using DWITHIN
这些计算是在 JavaScript 中完成的。最初我使用 radius/111.325 将 km 转换为度数,这没有返回搜索范围内的一些点。例如Radius设置为2.7km,2km以外的结果有时不会返回。
我现在已经使用来自这个问题 https://gis.stackexchange.com/questions/142326/calculating-longitude-length-in-miles 的信息更改了计算以根据纬度调整经度之间的距离
//get value of a degree in radians at current Latitude
var latRadians = lat * Math.PI / 180;
//get the value in kilometers for the current latitude based off radian value
var degreeKM = latRadians * 111.325
var converteddistance = radius / degreeKM;
然后我在 CQL Fitler 中传递转换后的距离作为半径以返回结果。这个问题是一些结果现在返回半径之外。这个圆是用5km的半径画的,你可以看到5.79km外返回的结果。
我还将纬度/经度放入计算器中的圆心和出现在圆外的点的这个 url。计算器给了我相同的距离和我在图像中使用的测量工具所以我相信圆圈和测量工具工作正常。 http://www.movable-type.co.uk/scripts/latlong.html
最佳答案
计算 1 度的长度的方式有几个问题。
首先,纬度的长度与经度的长度不同。这样做会产生一个椭圆,而不是一个圆。如果您使用最小的长度(经度),您将省略点,如果您使用最长的长度(纬度),您将有太多的点。
要获得给定纬度的经度长度,您必须使用余弦并以度为单位进行计算。
degreeKM = cos(latDegree) * 111.325
在 60 度时,大致为 cos(60)*111.325 = 55.66 km,对应于找到的值 here ,这几乎是您当前长度的一半。
话虽这么说,但整个方法对于诸如此类基本任务而言相当麻烦。您是否可以访问像 PostGIS 这样的数据库,您可以在其中进行过滤?
关于javascript - GeoServer - DWITHIN 没有正确过滤点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45333651/
我正在寻找的解决方案是为 DWITHIN 请求将千米转换为度数的准确方法,或者让 GeoServer 识别请求中指定的单位以便能够直接以千米为单位传递。 我正在向 GeoServer 发出 WFS 请
我试图在某个点的 5000 米范围内获取 N 个点。我的数据库是 Postgres(PostGis)。我有一个这样的模型: class Theatre(models.Model): geom
首先,我是 Geoserver 和 Openlayers 的新手。我一直在尝试使用 Layer 预览页面在 Geoserver 端进行此操作,以使用 Openlayer 查看器查看我的图层。最后,我会
使用geoDjango,有什么区别 myObj.objects.filter(point__dwithin(...etc.)) 和 myObj.objects.filter(point__dist
我将 Django Haystack 与 Elasticsearch 一起使用。 ElasticSearch 可以执行距离查询并针对 5 英里半径返回 11 个结果,而 Haystack 的 dwit
首先:RHEL 6.5 上的 Python 2.7.6、Django 1.6.5、Postgres 9.3.4、PostGIS 2.1.3、psycopg2 2.5.3 这是相关模型: class L
我是一名优秀的程序员,十分优秀!