如何找出地图上绘制的形状中的哪些坐标?

时间:2012-05-01 10:19:16

标签: c# sql google-maps coordinates

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

Google的演示: 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 lat / long上这样做似乎会非常棘手 - 但有几个网站似乎这样做了!任何接受的答案都需要用于纬度/长度地图坐标,因为我知道如何解决简单的x / y网格问题。

谢谢!

2 个答案:

答案 0 :(得分:2)

我不知道谷歌api的细节,但已经看到并使用了rightmove功能(就在最近!)。我会在C#中提出一些建议,并且在多边形检查中有一些标准算法可以做点。在25,000个项目的情况下,我建议在并行处理它们,否则处理可能需要一个年龄。

StackOverflow - Point in Polygon C#
WikiPedia Point in Polygon Algorithms

答案 1 :(得分:1)

.Net拓扑套件http://code.google.com/p/nettopologysuite/可用于这些计算。它使用GeoAPI {。{3}}

的.Net实现