2012-08-08 5 views
0

Google 지역 정보에서 문자열로 위도와 경도가 표시됩니다. 이제 얻은 좌표를 사용하여지도에 핀을 배치하고 싶습니다. GeoPoint의 문자열을 정수로 파싱하려고 시도하고 있기 때문에 결과가 0,0으로 표시되어 핀이 아프리카 해안에 배치됩니다. 여기에 내 코드입니다 :Android Geopoint의 문자열을 int로 변환

int lati5Int, longi5Int;   

String latiString = in.getStringExtra(TAG_GEOMETRY_LOCATION_LAT); 
    String longiString = in.getStringExtra(TAG_GEOMETRY_LOCATION_LNG); 
    TextView getLatiStringtv.setText(latiString); 
    TextView getLongiStringtv.setText(longiString); 

    try { 
     lati5Int = Integer.parseInt(getLatiStringtv.getText().toString()); 
     longi5Int = Integer.parseInt(getLongiStringtv.getText().toString()); 
    } catch(NumberFormatException nfe) { 
     System.out.println("Could not parse " + nfe); 
    } 
// shows that the ints are zeros 
    doubleLatiTV.setText(Integer.toString(lati5Int)); 
    doubleLongiTV.setText(Integer.toString(longi5Int)); 

//--- GeoPoint--- 
newPoint = new GeoPoint(lati5Int,longi5Int); 
mapController.animateTo(newPoint); 
mapController.setZoom(17); 
//--- Place pin ---- 
marker = getResources().getDrawable(R.drawable.malls);  

OverlayItem overlaypoint = new OverlayItem(newPoint, "Boing", "Whattsup"); 
CustomPinpoint customPin = new CustomPinpoint(marker, SMIMap.this); 
customPin.insertPinpoint(overlaypoint); 
overlayList.add(customPin); 

나는 오류가 정수의 구문 분석에 생각 :

  lati5Int = Integer.parseInt(getLatiStringtv.getText().toString()); 
     longi5Int = Integer.parseInt(getLongiStringtv.getText().toString()); 

내가 구문 분석이 좌표의 소수점을보고 밖으로 괴물 생각합니다. 그렇다면 좌표 문자열을 정수로 구문 분석하여 GeoPoint에서 올바른 형식의 좌표로 표시되도록하려면 어떻게해야합니까? 30.487263, -97.970799

+0

가 왜 E06''에 의해 곱셈 다음과 같은 두 구문 분석하지 않습니다. 마지막 단계로 int로 캐스팅 할 수 있는지 확인하십시오 –

답변

2

GeoPoint은 30.487263, -97.970799로 표시하지 않으려합니다. 그것은 정수 30487263, -97970799로 그것들을 원합니다. A.A가 말했듯이, double로 먼저 구문 분석하고, E6으로 곱한 다음 int로 변환합니다.

그래서 어쩌면 같은 것을 :

lati5Int = Double.parseDouble(getLatiStringtv.getText().toString()); 
latiE6 = (int) (lati5Int*1000000); 
+0

정말 고마워요! 그것은 효과가 있었다. 루키 실수는 GeoPoints에 소수점이 없다는 것을 알고 있었지만 내 뇌에 등록하지 못했습니다. – CaptKirk