Android / Google Maps не масштабируются до геокодированной позиции - PullRequest
2 голосов
/ 14 декабря 2011

Я изучаю некоторые учебники и мне нужно поменять адреса геокодов, но я не могу заставить примеры работать.Карта отображается, но она не увеличивает моего геокодированного местоположения.Вот мой код ...

public class MapsActivity extends MapActivity {
    MapView mapView;
    MapController mc;
    GeoPoint p;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapshow);
        mapView = (MapView) findViewById(R.id.mapView);
        mc = mapView.getController();
        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);
        Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
        try {
            List<Address> addresses = geoCoder.getFromLocationName(
                "empire state building", 15);
            String add = "";
            if (addresses.size() > 0) {
                p = new GeoPoint(
                    (int) (addresses.get(0).getLatitude() * 1E6),
                    (int) (addresses.get(0).getLongitude() * 1E6));
                mc.animateTo(p);
                mapView.invalidate();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}

1 Ответ

1 голос
/ 14 декабря 2011

Первая проверка

Дает ли он какой-либо журнал ошибок? .. Пробовали ли вы с другими адресами?, Попробуйте написать название города ... Вы пытаетесь это сделать в эмуляторе ... затем проверка в устройстве вызывает Geocoderкласс не работает в эмуляторе .. если уровень API равен 2.2 .. попробуйте изменить его на более низкий и высокий .. возможно, из-за уровня масштабирования вы не сможете распознать результат .. установите его в mc.setZoom (16);

Затем проверьте

Я подозреваю, что проблема в том, чтобы увидеть результат .. напишите какой-нибудь адрес за пределами США и посмотрите, есть ли какая-либо разница.

Наконец

Если у вас есть Device .. попробуйте свой код на нем .. и я уверен, что он будет работать нормально или используйте более высокую версию эмулятора.

...