2010-02-23 9 views
1

Je termine la création d'un programme Android qui ajoute un marqueur à un emplacement. Mais je dois montrer MON EMPLACEMENT ACTUEL dans la carte. Je sais que cela fait à travers des services de localisation, mais je ne sais pas comment l'intégrer dans mon programmeObtenir l'emplacement actuel

Voici ma commande onCreate


    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);

//map 
    mapView = (MapView) findViewById(R.id.mapView); 

    //zoom 
    LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom); 
    View zoomView = mapView.getZoomControls(); 

    zoomLayout.addView(zoomView, 
     new LinearLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 
    mapView.displayZoomControls(true); 

    //Philippines coordinate 
    mc = mapView.getController(); 
    String coordinates[] = {"10.952566007", "121.78921587"}; 
    double lat = Double.parseDouble(coordinates[0]); 
    double lng = Double.parseDouble(coordinates[1]); 

    p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); 

    mc.animateTo(p); 
    mc.setZoom(6); 

    mapOverlay = new MapOverlay(); 
    listOfOverlays = mapView.getOverlays(); 
    listOfOverlays.clear(); 
    listOfOverlays.add(mapOverlay); 

    mapView.invalidate(); 
} 

J'ai un onTouchEvent qui place le marqueur . Le problème est que je dois afficher ma position au début du programme. Il devrait montrer une marque qui dit: «Vous êtes ici» ou quelque chose comme ça sur la carte.

p.s: Je pense que j'ai besoin de changer le point codé en dur à mon emplacement actuel, mais je ne sais pas comment faire: |

Répondre

0

Hello MapView montre comment placer des superpositions. Je pense que vous voulez utiliser la classe MyLocationOverlay documentée dans the google APIS reference pour obtenir votre emplacement actuel.

+0

Un autre bon exemple qui fait beaucoup plus que ce que vous recherchez est l'application de recherche d'amis sur anddev.org: http://www.anddev.org/the_friend_finder_-_mapactivity_using_gps_-_part_i_-_ii-t93.html – RickNotFred

2

Afin d'obtenir l'emplacement actuel de votre téléphone que j'utilise

LocationManager LocationManager = (LocationManager) this.getSystemService (LOCATION_SERVICE);
Critères Critères = nouveaux critères(); criteria.setAccuracy (Criteria.ACCURACY_COARSE); Chaîne bestProvider = locationManager.getBestProvider (critères, true); Emplacement loc = locationManager.getLastKnownLocation (bestProvider);

définir les utilisations-autorisations dans le AndroidManifest.xml pour ces (utiliser l'emplacement parfait pour d'autres choses)

ref. Dans mon application, je voudrais passer un paramètre à l'intention des cartes pour que les cartes montrent un marqueur, mais n'ont trouvé aucun moyen de le faire. Créer une superposition d'emplacement comme suggéré par Rick (qui n'est pas Fred) est probablement la voie à suivre

+0

Lorsque j'ai incorporé ce code dans mon programme, il renvoie un emplacement nul. – lulala

+0

bizarre. Avez-vous configuré AndroidManifest.xml de la même manière que moi, ref http://code.google.com/p/android-bluetooth-on-motion/source/browse/trunk/BluetoothOnMotion/AndroidManifest.xml? – dparnas

Questions connexes