2011-01-26 54 views
3

非常奇怪的错误,我似乎无法搞清楚,一直在寻找它大约一个小时试图重构来解决这个问题,但我似乎无法人物它出来,也许一个新的眼睛将能够帮助我。下面列出的是一小段代码。任何帮助表示赞赏。的GeoPoint getLatitudeE6()返回-80000000但getLongitudeE6()返回正确的值

样品KML坐标串

-98.493095,29.416311,0.000000 

KMLHandler.java

String[] coords = s.split(","); 
    if (coords.length == 3) { 
     GeoPoint gp = GeoPointUtils.getGeoPoint(coords[0].trim(), coords[1].trim()); 
     ((Region)overlayItem).addCoordinate(gp); 
     Log.d(TAG, "gp.getLat(): " + gp.getLatitudeE6()) 
     Log.d(TAG, "gp.getLong():" + gp.getLongitudeE6()); 
    } 

GeoPointUtils.java

public static GeoPoint getGeoPoint(double latitude , double longitude) { 
    Log.d(TAG, "GeoPointUtils.getGeoPoint(double)"); 
    Log.d(TAG, "\tIncoming lat -> " + latitude); 
    Log.d(TAG, "\tConverted lat -> " + (int) (latitude * 1E6)); 
    Log.d(TAG, "\tIncoming long -> " + longitude); 
    Log.d(TAG, "\tConverted long -> " + (int) (longitude * 1E6)); 

    return new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6)); 
} 

public static GeoPoint getGeoPoint(String latitude , String longitude) { 
    Log.d(TAG, "GeoPointUtils.getGeoPoint(String)"); 
    Log.d(TAG, "\tIncoming lat -> " + latitude); 
    Log.d(TAG, "\tConverted lat -> " + Double.parseDouble(latitude)); 
    Log.d(TAG, "\tIncoming long -> " + longitude); 
    Log.d(TAG, "\tConverted long -> " + Double.parseDouble(longitude)); 

    return getGeoPoint(Double.parseDouble(latitude), Double.parseDouble(longitude)); 
} 

logcat的结果(我在一个字符串格式KML读)(难过语法突出显示)

GeoPointUtils.getGeoPoint(String) 
    Incoming lat -> -98.493095 
    Converted lat -> -98.493095 
    Incoming long -> 29.416311 
    Converted long -> 29.416311 
GeoPointUtils.getGeoPoint(double) 
    Incoming lat -> -98.493095 
    Converted lat -> -98493095 
    Incoming long -> 29.416311 
    Converted long -> 29416311 
gp.getLat(): -80000000 
gp.getLong(): 29416311 

回答

2

纬度只能从-90到+90度推移。这是你的问题吗?

如果您想要绘制在圣安东尼奥,德克萨斯州的一个点,你打开你的lat和长。 )

+0

正如我在其他评论中提到,这正是问题是,拉特和多头从我所期待的 – Gimbl 2011-01-26 22:30:48

+0

右边...我打字是评论,而你正在输入你的到来向后英寸无论如何,很高兴这是一个简单的解决方案。 – John 2011-01-26 22:32:07

3

野生屁股猜测:纬度是北或南赤道定义为角度,因此被限制在范围-90到+90 degres。你的输入纬度,-98.5左右,是假的,这可能是在吹东西。现在

,假设你的代码,纬度比度之外的一些单位表示,我说你是什么地方打某种硬围栏。

You expected gp.getLat(): -98493095 
You got  gp.getLat(): -80000000 
相关问题