Авторазмер Google Maps в java? (в зависимости от разрешения экрана Android) - PullRequest
8 голосов
/ 19 апреля 2010

У меня есть 2 GeoPoints, чтобы показать их на карте с маркерами.

Как получить оптимальный уровень масштабирования для MapController, чтобы сфокусировать середину обеих точек, но также иметь их на карте.

Все это должно работать на разных разрешениях экрана.

Ответы [ 2 ]

9 голосов
/ 19 апреля 2010

Вы можете сделать это, используя MapView Map2 *1002*. Вы получаете MapController, используя MapView.getController () , затем вы можете попытаться установить правильный масштаб, используя MapController.zoomToSpan (). Я также стремлюсь использовать ItemizedOverlay getLatSpanE6 () и getLonSpanE6 (), чтобы сделать это проще. Пример:

MapView map = (MapView) findViewById(R.id.Map);
MapController mc = map.getController();
mc.zoomToSpan(overlay.getLatSpanE6(), overlay.getLonSpanE6());

Важно отметить их предостережение:

Потому что зум может достичь только дискретные уровни, и потому что соотношение сторон карты может не совпадать приведенное соотношение, качество подгонка может отличаться. Единственное, что мы гарантия заключается в том, что после увеличения хотя бы одна из новой широты или новая долгота будет в пределах фактора 2 от соответствующего параметра.

Редактировать: чтобы карта также отображалась в нужном месте, необходимо использовать MapController.setCenter ().

0 голосов
/ 09 декабря 2013

Вот как это должно быть сделано:

private void loadMarkerPositions() {


    for (Stores store : storeList) {
        latlong1 = new LatLng(store.getLatitude(), store.getLongtitude());
        array.add(latlong1);
    }

     List<LatLng> points = array; 

     final LatLngBounds.Builder bc = new LatLngBounds.Builder();

        for (LatLng item : points) {
            bc.include(item);
        }

    googleMap.setOnCameraChangeListener(new OnCameraChangeListener() {

        @Override
        public void onCameraChange(CameraPosition arg0) {
            // Move camera.
            googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 30));
            // Remove listener to prevent position reset on camera move.
            googleMap.setOnCameraChangeListener(null);
        }
    });

}

Ссылка: Перемещение камеры с CameraUpdateFactory.newLatLngBounds завершает работу

Есть еще один простой способ, вы можете использовать этот проект для выполнения всех действий, связанных с картой:

https://github.com/girishnair12345/Google-Maps-V2-library

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...