非常奇怪的錯誤,我似乎無法搞清楚,一直在尋找它大約一個小時試圖重構來解決這個問題,但我似乎無法人物它出來,也許一個新的眼睛將能夠幫助我。下面列出的是一小段代碼。任何幫助表示讚賞。的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
正如我在其他評論中提到,這正是問題是,拉特和多頭從我所期待的 – Gimbl 2011-01-26 22:30:48
右邊...我打字是評論,而你正在輸入你的到來向後英寸無論如何,很高興這是一個簡單的解決方案。 – John 2011-01-26 22:32:07