2011-05-24 64 views
1

我想在C做些什么,我正在建立一个服务器,将会收到一个经纬度坐标-23.0001,-43.3417是确切的,我正在尝试做一个10km围绕该坐标的半径圆,有可能吗?我放弃了试图使一个圆圈,并试图让一个正方形20公里边,在这里我给的是中心的坐标,但我一直没有,这里是我想要帮助Circle in C

Quad *cria_quadrado_complex(Coords *b) 
{ 
    Quad* a = (Quad*) malloc(sizeof(Quad)); 
    a->x1 = b->x + 0.0433; 
    a->x2 = b->x + 0.0587; 
    a->y1 = b->y + 0.0433; 
    a->y2 = b->y + 0.0490; 
    return a; 
} 

使用的结构分别是:

struct coordenadas 
{ 
    double x, 
      y; 
}; 

struct quadrado 
{ 
    double x1, 
      x2, 
      y1, 
      y2; 
}; 

typedef struct coordenadas Coords; 
typedef struct quadrado Quad; 

这些东西0.0的值是我从谷歌地图的测量值,但他们是从中央和dindn't工作faar,有没有更好的方式来做到这一点?帮助

PS -23.0001,-43.3417是坐标从谷歌地图

这里是我想要做的一个例子:

1---------- 1 : top coordinate of the square 
----------- 
-----C----- C : center coordinate (-23.0001, -43.3417) 
----------- 
----------2 2 : bottom coordinate of the square 

1和2我要与自动生成中心坐标,他们将远离中心,所以广场的两边是10公里

+0

你的用例是什么? – Trott 2011-05-24 00:49:04

回答

0

这当然是可能的,但你会想要得到正确的公式。一个好的开始可能是阅读http://www.movable-type.co.uk/scripts/gis-faq-5.1.html

你不会说C中为什么要这样做,而且我不能告诉你是否需要为任意经纬度计算这个值,或者只是为你给出的值。如果您可以使用其他语言来执行此操作,或找到处理KML的C库,并且您只需要一组坐标即可工作,则可以使用http://www.freemaptools.com/radius-around-point.htm工具生成KML或Google Maps Static API网址。如果您只关心您指定的一对坐标,则可能需要硬编码的KML文件。

+0

哦,我在C上做这个,因为我在大学学习C,我正在使用我正在学习的功能嘿嘿 – 2011-05-24 01:06:03

+0

好的,我更新了我的答案,并且包含了一个常见问答的链接,它提供了计算公式lat/lng坐标,它们是距另一个经纬度坐标的特定距离。在C语言中实现这一点,你应该在围绕某个点做一个圆圈的道路上。 – Trott 2011-05-24 01:41:49