2

私はlatlngによってマーカーを配置することを想定しているこのコードを持っています

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());
            } 
        }
    });

45.48592686713835これらの座標 ( , )でテストしたところ-73.49009937672122、アイコン A である最も近い住所しか得られませんでした。しかし、私が本当に欲しかったのは、緑色の矢印で示された正確な位置です。

ここに画像の説明を入力

何か不足していますか?

4

1 に答える 1

1

Geocoderを使用して逆ジオコードを実行する場合(LatLngを住所に変換する場合)、最も近い住所が決定される場合は、常に取得されます。元の座標を使用する場合は、元の座標を使用して配置するだけMarkerです。LatLngをアドレス、またはGoogleがアドレスに到達できる最も近いアドレスに変換する場合、結果にGeocoderは常に、最も近い既知の、、、、、、などのLatLngが表示street_addressされます。routeairporttransit_stationneighborhoodsublocalitylocality

于 2012-07-01T16:54:32.867 に答える