2013-03-19 4 views
1

Я хочу показать свое местоположение и место назначения на карте. проблема заключается в том, что место назначения всегда указывают на то же место, даже если я изменить другого назначения долго и лат ...google map android marker всегда указывает на ту же позицию?

здесь код

protected void tampilkanPosisikeMap(Location newLocation) { 
    List<Overlay> overlays = mapView.getOverlays(); 

    if (overlays.size() > 0) { 
     for (Iterator iterator = overlays.iterator(); iterator.hasNext();) { 
      iterator.next(); 
      iterator.remove(); 
     } 
    } 

    GeoPoint geopoint = new GeoPoint(
      (int) (newLocation.getLatitude() * 1E6), (int) (newLocation 
        .getLongitude() * 1E6)); 
    GeoPoint myposition = geopoint; 
    Location locationA = new Location("point A"); 
    Location locationB = new Location("point B"); 
    locationA.setLatitude(geopoint.getLatitudeE6()/1E6); 
    locationA.setLongitude(geopoint.getLongitudeE6()/1E6); 

    Drawable icon1 = getResources().getDrawable(R.drawable.user); 
    icon1.setBounds(0, 0, icon1.getIntrinsicWidth(), icon1 
      .getIntrinsicHeight()); 

    MyItemizedOverlay overlay1 = new MyItemizedOverlay(icon1, this); 
    OverlayItem item1 = new OverlayItem(geopoint, "Posisi Anda", "Lat:" 
      + locationA.getLatitude() + "\nLng:" + locationA.getLongitude()); 
    overlay1.addItem(item1); 
    mapView.getOverlays().add(overlay1); 



    String lat2,longi2; 
    String nama_rs;String alamat_rs; 
    nama_rs = getIntent().getExtras().getString("namarsakit"); 
    alamat_rs = getIntent().getExtras().getString("alamatrsakit"); 
    lat2 = getIntent().getExtras().getString("lat"); 
    longi2 = getIntent().getExtras().getString("longi"); 
    Double lintang_rs = Double.parseDouble(lat2); 
    Double bujur_rs = Double.parseDouble(longi2); 

     GeoPoint geopoint1 = new GeoPoint(
       (int) (lintang_rs * 1E6), 
       (int) (bujur_rs * 1E6)); 
     locationB.setLatitude(geopoint1.getLatitudeE6()/1E6); 
     locationB.setLongitude(geopoint1.getLongitudeE6()/1E6); 

     DecimalFormat formatData = new DecimalFormat("#.#"); 
     float distance = (float) locationA.distanceTo(locationB)/1000; 
     String jarak; 
     jarak = String.valueOf(formatData.format(distance)); 

     Drawable icon = getResources().getDrawable(R.drawable.marker); // 
     icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon 
       .getIntrinsicHeight()); 
     MyItemizedOverlay overlay = new MyItemizedOverlay(icon, this); // 
     OverlayItem item = new OverlayItem(geopoint1, nama_rs,   // 
       alamat_rs 
         + "\n\nJarak dari Posisi Anda : " + jarak + " km"); 
     overlay.addItem(item); 
     mapView.getOverlays().add(overlay); 
     Toast.makeText(MapDetailActivity.this,"nama = "+nama_rs+"lat tujuan= "+lintang_rs+"long tujuan = "+bujur_rs, Toast.LENGTH_SHORT).show(); 



    mapView.getController().animateTo(geopoint1); 


} 

это код назначения сверху:

String lat2,longi2; 
    String nama_rs;String alamat_rs; 
    nama_rs = getIntent().getExtras().getString("namarsakit"); 
    alamat_rs = getIntent().getExtras().getString("alamatrsakit"); 
    lat2 = getIntent().getExtras().getString("lat"); 
    longi2 = getIntent().getExtras().getString("longi"); 
    Double lintang_rs = Double.parseDouble(lat2); 
    Double bujur_rs = Double.parseDouble(longi2); 

     GeoPoint geopoint1 = new GeoPoint(
       (int) (lintang_rs * 1E6), 
       (int) (bujur_rs * 1E6)); 
     locationB.setLatitude(geopoint1.getLatitudeE6()/1E6); 
     locationB.setLongitude(geopoint1.getLongitudeE6()/1E6); 

     DecimalFormat formatData = new DecimalFormat("#.#"); 
     float distance = (float) locationA.distanceTo(locationB)/1000; 
     String jarak; 
     jarak = String.valueOf(formatData.format(distance)); 

     Drawable icon = getResources().getDrawable(R.drawable.marker); // 
     icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon 
       .getIntrinsicHeight()); 
     MyItemizedOverlay overlay = new MyItemizedOverlay(icon, this); // 
     OverlayItem item = new OverlayItem(geopoint1, nama_rs,   // 
       alamat_rs 
         + "\n\nJarak dari Posisi Anda : " + jarak + " km"); 
     overlay.addItem(item); 
     mapView.getOverlays().add(overlay); 
     Toast.makeText(MapDetailActivity.this,"nama = "+nama_rs+"lat tujuan= "+lintang_rs+"long tujuan = "+bujur_rs, Toast.LENGTH_SHORT).show(); 



    mapView.getController().animateTo(geopoint1); 
+0

'locationB.setLatitude (geometoint1.getLatitudeE6()/1E6);' вы проверили, является ли двойной тип? или тип int? может быть, проблема. –

+0

его проблема .. я пытаюсь сделать тост, латентное значение - это изменение, а longitute - не изменение .. может у меня помочь? что моя ошибка? Я уже установил как latitute, так и longitut в Double. – Bas

+0

, но когда вы печатаете оба, они печатаются как двойные? –

ответ

0

Для того, чтобы вы могли показать свое текущее местоположение, вы должны обратиться к провайдеру определения местоположения GPS или поставщику сетевого местоположения. Глядя на ваш код, я не вижу ничего подобного. Обратите внимание, что на эмуляторе DDMS по умолчанию будет находиться в определенном месте. если вы не поставили один самостоятельно

Смежные вопросы