我一直在研究一個具有谷歌地圖的android應用程序,我要求座標到一個節點js服務器,然後將響應解析爲double類型,並在傳遞給對象時Marker標記出現在一個不準確的位置,我已經複製了數據庫中的座標,當我將它們直接傳遞給Marker的對象時,標記出現在正確的位置,我也有一個警告框顯示標記的值爲我從服務器收到它們,它似乎顯示正確的座標,我認爲是有一些垃圾值與我分配座標的變量,或者它可以是解析中的問題,而我得到他們的形式的JSON從服務器和解析他們加倍 我已經做了一些搜索,但我無法找到一個具體的解決方案解決我的問題,如果我沒有徹底,我很抱歉,先謝謝大家的幫助。谷歌地圖標記出現在地圖上的錯誤位置
下面是代碼: 的代碼時,我收到的座標和解析它們(通過socketIO):
public void on(String functionName, IOAcknowledge ioAck, Object... arguments) {
if("points_of_interest".equals(functionName)){
temp=arguments[0].toString();
try {
JSONObject object=new JSONObject(temp);
String idStop=object.getString("route_id");
String longt=object.getString("stop_longg");
String lat=object.getString("stop_lat");
lati=Double.parseDouble(lat);
lngi=Double.parseDouble(longt);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
現在,這裏是創建在onCreate方法標記的函數調用:
map=((MapFragment) getFragmentManager().findFragmentById(R.id.allBusMaps)).getMap();
createStops();
這裏是createStops代碼()方法:
public void createStops(){
map.clear();
// LatLng lhr=new LatLng(31.500794,74.316777);
LatLng lhr=new LatLng(lati,lngi);
Marker lahore = map.addMarker(new MarkerOptions().position(lhr).title("busStop"));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(lhr, 15));
}
在上面提到的情況情況下,當我傳遞的值通過變量這是被生成的輸出:
但是,當我通過直接傳遞到標記的對象中的值顯示在右側的位置的標記:
eg LatLng lhr =新LatLng(31.500794,74.316777);
你從json獲得lati,lngi變量的值是多少? – fargath
主席先生,我用一個警告框來顯示lati,lngi變量的值,並且兩者分別顯示正確31.500794和74.316777 – Hassan
我認爲問題出在解析 – Hassan