2011-01-26 49 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 
相關問題