2

谷歌有一个谷歌地图的演示,它允许你在页面上绘制一个搜索区域作为自由形式的多边形,但是给定我的 SQL 数据库中的一组条目(~25,000),我怎么能真正找出其中的条目这个形状?

谷歌的演示: http: //gmaps-samples.googlecode.com/svn/trunk/poly/mymapstoolbar.html

您可以在此处查看此功能: http ://www.rightmove.co.uk/draw-a-search.html

数学不是我的强项,所以我想知道是否有一种简单的方法可以做到这一点(最好在数据库级别)或者在 C# 中?

编辑: 困难的部分是对纬度和经度坐标(例如,+40.689060、-74.044636)进行处理,其中数据和多边形点都是这种格式。我找到了一些在简单的 x/y 平面上执行此操作的示例,但在 WGS84 纬度/经度上执行此操作似乎非常棘手 - 但似乎有几个站点可以执行此操作!任何接受的答案都需要针对纬度/经度地图坐标,因为我知道如何解决简单 x/y 网格的问题。

谢谢!

4

2 回答 2

2

我不知道 google api 的详细信息,但已经看到并使用了 rightmove 功能(就在最近!)。我会在 C# 中提出一些建议,并且有用于在多边形检查中进行点的标准算法。对于 25,000 个项目,我建议并行处理,否则处理可能需要一段时间。

StackOverflow - 多边形中的点 C#
WikiPedia Point in Polygon Algorithms

于 2012-05-01T10:30:41.800 回答
1

.Net 拓扑套件http://code.google.com/p/nettopologysuite/可用于这些计算。它使用 GeoAPI http://geoapi.codeplex.com/的 .Net 实现

于 2012-05-01T11:16:20.043 回答