javascript - 使用Java将lon/lat坐标分类为geojson多边形

原文 标签 javascript node.js d3.js geospatial geojson

我有一个geojson对象,它使用lon/lat多边形定义Neighborhoods in Los Angeles。在我的web应用程序中,客户端必须处理空间事件的实时流,基本上是lon/lat坐标的列表。如何在客户端(在浏览器中)使用javascript将这些坐标分类为邻域?
我愿意假设邻里之间是独一无二的。因此,一旦坐标被归类为X邻域,就不需要对其他邻域进行进一步的测试。

最佳答案

关于如何解决确定一个点是否包含在多边形中的一般问题,有很多答案。这两个选项在您的案例中听起来最有趣:
正如@bubbles所提到的,首先要做一个边界框复选框。这是非常快的,我相信无论是投影坐标还是未受保护的坐标都能很好地工作。如果您有邻近区域的svg路径,则可以使用native.getBBox()方法快速获取边界框。
下一件事我会尝试复杂的多边形,特别是如果你可以使用d3 v3,是渲染到屏幕外的画布和检查像素颜色。d3 v3提供了一个地理路径帮助器,它可以生成画布路径和svg路径,我怀疑如果你可以预先渲染邻域,这确实会非常快。
更新:我认为这是一个有趣的问题,所以我在这里提出了一个通用的基于光栅的插件:here
这与d3和canvas元素一起工作,完成基于光栅的地理编码。一旦特征被绘制到画布上,实际的地理编码是o(1),因此应该非常快-快速的浏览器内测试可以在大约0.5秒内对1000个点进行地理编码。如果你在实践中使用这个,你需要比我更好地处理边缘案例。
如果您不在浏览器中工作,您仍然可以使用http://bl.ocks.org/4246925来完成此操作。

相关文章:

javascript - 返回页首链接隐藏在文字下

node.js - Socket.io自上个星期以来已停止工作

javascript - C#中的Javascript日期valueOf等效项

angular - 如何在Angular Dart中使用最新版本的d3 js库?

javascript - 为什么找不到从PHP发出的Javascript函数?

javascript - jQuery hasClass无法正常工作或if语句有缺陷

node.js - 无法使用链接获取其他标题

html - 使用下拉菜单中的选定颜色选项更新 map 多边形和 map 图例?

javascript - d3:使用arcTween平滑地对甜甜圈图进行补间吗?

javascript - 在Sigma.js中加载JSON文件,但无法绑定(bind)overEdge事件