2012-04-15 32 views
1

我有coorinates的对:(Delphi应用程序)错误的位置发现

GpsLatitude  GpsLongitude 
32.012919  34.547592, 
32.012798  34.54763, 
32.012827  34.547584, 
32.012814  34.547608, 
32.01273  34.54765, 
32.012868  34.547631, 
32.012834  34.547577, 

,我必须表明它在谷歌地图在Delphi应用程序。

我找到一个例子here delphi代码示例 它的工作原理。但是,当我试图用我的坐标,使用它指向 到错误的位置,但是当我在浏览器中打开它,像这样

“32 01.2834,34 54.7577”

它的工作好,不幸的是它在德尔福不起作用。

什么可能是错误的?

+0

我是这样的文章的作者,我测试的代码和工作正常检查此图像http://i43.tinypic.com/jpx941.png你确定你正在传递正确的线到应用程序? – RRUZ 2012-04-15 22:43:30

+0

[回复RRUZ]是的。我检查过任何时候。正如我上面所写的,如果我通过这些坐标抛出maps.google.com(搜索编辑框)不是作为浮点数(32.012919 34.547592),但作为字符串(32 01.2919,34 54.7592),它在地图上找到正确的点。不幸的是,latlon脚本只能用数字工作,并且不能在内部使用带空白的字符串 – 2012-04-16 14:59:13

+0

顺便说一句,看来,我用你的代码作为我的应用程序的基础;) – 2012-04-16 15:15:07

回答

3

,如果你看一下GotoLatLng JavaScript中的article使用的功能,

function GotoLatLng(Lat, Lang) { 
    var latlng = new google.maps.LatLng(Lat,Lang); 
    map.setCenter(latlng); 
    var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title:Lat+","+Lang 
    }); 
    } 

你可以看到在google.maps.LatLng()函数的调用,而这需要以十进制格式给予两个数字。您正在使用的数值为32 01.2919, 34 54.7592,它以度和分钟格式显示,因此该格式在传递给javascript函数之前必须转换为十进制。现在,原因是因为该值在Google地图页面中起作用,因为该页面在内部解析了作为参数传递的字符串,并返回了作为结果的标记集合。

+0

好的。很多感谢解释,但我怎么可以将其转换为十进制格式?并且,在哪里我可以找到算法? – 2012-04-16 21:26:04

+0

[不同程度的格式:决议和转换](http://home.online.no/~sigurdhu/Deg_formats.htm) – RRUZ 2012-04-16 21:35:37

相关问题