2012-07-01 1 views
2

J'ai ce code qui suppose de placer le marqueur par le latlngPlacer un marqueur par Latitude et Longitude

public void initialize() { 
    geocoder = Geocoder.create(); 
    myOptions = MapOptions.create();   
    myOptions.setZoom(18); 
    myOptions.setMapTypeId(MapTypeId.HYBRID); 
    myOptions.setMapMaker(true); 
    map = GoogleMap.create(
     Document.get().getElementById("map_canvas"),myOptions);  

    GeocoderRequest request = GeocoderRequest.create();     
    request.setLocation(LatLng.create(lat,lng)); 

    geocoder.geocode(request, new Callback() { 
     public void handle(JsArray<GeocoderResult> rslts, GeocoderStatus status) 
     { 
      if (status == GeocoderStatus.OK) { 
       location = rslts.get(0); 
       map.setCenter(location.getGeometry().getLocation()); 
       marker = Marker.create(); 
       marker.setMap(map); 
       marker.setPosition(location.getGeometry().getLocation()); 
      } 
     } 
    }); 

Lorsque je l'ai testé avec les coordonnées (45.48592686713835, -73.49009937672122) je reçois que l'adresse la plus proche qui est l'icône A. Mais ce que je voulais vraiment, c'est l'emplacement exact montré avec la flèche verte.

enter image description here

Suis-je manque quelque chose?

Répondre

1

Vous obtiendrez toujours l'adresse la plus proche, si on peut être déterminé, en utilisant le Geocoder pour faire un géocodage inverse (convertir LatLng en adresse). Si vous souhaitez utiliser les coordonnées d'origine, il suffit de placer le Marker en utilisant les coordonnées d'origine. Si vous allez convertir le LatLng à une adresse ou le plus proche que le Google Geocoder peut se rendre à une adresse, les résultats vous donnera toujours le LatLng du plus proche connu street_address, route, airport, transit_station, neighborhood, sublocality, locality,

+0

J'ai fait ce que vous avez suggéré, mais maintenant j'ai cette étrange exception http://stackoverflow.com/questions/11284367/weird-exception-when-placing-a-marker-with-latlng – outellou

Questions connexes