如何显示在android谷歌地图中创建的行?

问题描述:

有没有人知道如何显示在网站上的标准谷歌地图android中创建的点,线等(基本上每个覆盖)? Android数据库与远程数据库同步。我从数据库中获取点数,从中创建kml文件并上传到地图中。问题是我创建的区域没有出现在他们应该出现的地方。他们在海洋上的某个地方。我以为这是因为我在android中运行这个代码:如何显示在android谷歌地图中创建的行?

Double lat = location.getLatitude()*1E6; 
Double lng = location.getLongitude()*1E6; 

所以基本上我在这里做microdegrees。我认为从1E6分数纬度和长分贝将做的伎俩,但它没有。有人能帮我解决这个问题吗?提前致谢。

+0

它如何存储在数据库?地图预期的格式是什么?在这个例子中,你乘以1E6 – Itsik 2010-07-05 12:26:22

+0

感谢您的答复。 db中的longs和lats存储如下:51404206 -762842,51404204 -762841,51404204 -762839 这些基本上是在android中采用的纬度和经度对。我正在开发一个应用程序,该应用程序现在将这些坐标显示在网站上的标准地图中。为了将它们显示在正确的位置上,我必须将它们分开还是相乘? 1E6是android使用的格式。 – Pavel 2010-07-05 12:30:33

我不知道地图所期望的格式。 如果是正常的坐标,那么我想你需要做的:

float lat = ((float)location.getLatitude())/1E6; 

否则,如果在int格式期待它,你不需要做任何事情

附:假设getLatitude()返回一个int值,那么将其强制浮动很重要。否则4539845将变成45而不是45.39845

我同意ltsik,E6格式基本上是1E6多倍的正常纬度(或1,000,000,无论你喜欢哪一个),所以变量lat和lng是非常有意义的划分和不相乘