У меня есть 2 GeoPoints, данные, чтобы показать им на карте с маркерами.
Как я могу получить оптимальный уровень масштабирования для MapController, чтобы сфокусировать середину обеих точек, но также и иметь их на карте.
Все это должно работать в различных разрешениях экранов.
Вы можете сделать это с помощью MapView MapController . Вы получаете MapController с помощью MapView.getController () , затем вы можете попытаться установить правильный масштаб с помощью MapController.zoomToSpan (). Я также предпочитаю использовать getLatSpanE6 () и getLonSpanE6 () ItemizedOverlay, чтобы сделать это проще. Пример:
MapView map = (MapView) findViewById(R.id.Map);
MapController mc = map.getController();
mc.zoomToSpan(overlay.getLatSpanE6(), overlay.getLonSpanE6());
Важно отметить их предостережение:
Поскольку масштабирование может достигать только дискретных уровней, и поскольку соотношение сторон карты может не соответствовать {{1} }} данное соотношение, качество соответствия может отличаться. Единственное, что мы гарантируем, - это то, что после увеличения на хотя бы одна из новой широты или новая долгота будет в пределах множителя 2. от соответствующего параметра.
Редактировать: Чтобы карта также увеличивалась в нужном месте, вы должны использовать MapController.setCenter ().