美国哪个地区的地理位置下降了?

时间:2012-08-17 06:57:14

标签: gps

我希望确定一个特定地理点(GPS coords)的美国州和县。我相信我可以获得关于州和县角落坐标的数据,但我需要一个算法来计算该点落在哪个州和县。

我不是Java或C用户,但我是Panorama(provue.com)中非常有经验的程序员,这是一个拥有非常全面和强大的编程语言的数据库管理系统。所以我需要访问一般定义的算法。

迈克尔

2 个答案:

答案 0 :(得分:1)

首先你应该有一组多边形,每个多边形对应一个美国状态,如http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm

然后您可以使用http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html#The C代码

中给出的以下算法
int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy)
{
  int i, j, c = 0;
  for (i = 0, j = nvert-1; i < nvert; j = i++) {
    if ( ((verty[i]>testy) != (verty[j]>testy)) &&
     (testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )
       c = !c;
  }
  return c;
}

nvert:多边形中的顶点数。下面讨论是否在末尾重复第一个顶点。

vertx,verty:包含多边形顶点的x坐标和y坐标的数组。

testx,testy:测试点的X坐标和y坐标。

答案 1 :(得分:0)

快速&amp;脏:
您可以通过以下方式使用this project作为HTTP请求: http://www.ngs.noaa.gov/cgi-bin/spc_getpc.prl?LatBox=N385930.99999&LonBox=W0985930.99999

并解析响应以提取状态。