Android Google Map, полилинии и масштабированиеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Android Google Map, полилинии и масштабирование

Сообщение Anonymous »

Я рисую список полилиний на карте Google. Я ищу решение, позволяющее масштабировать карту в зависимости от нарисованных полилиний. Я рассчитал центральную точку всей моей полилинии, чтобы знать, по какой точке центрировать карту. Но я не нашел решения для получения уровня масштабирования.
Вот код, который я использую:
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(getZoomPoint(), 15)) ;

Код: Выделить всё

private LatLng getZoomPoint() {
Double minLatitude = null;
Double minLongitude = null;
Double maxLatitude = null;
Double maxLongitude = null;

for (Feature feature : features) {
List coordinates = ((LineString) feature.getGeometry()).getCoordinates();
for (Coordinates coordinate : coordinates) {
// --------------------------------------------------------- INITIALISATION
if (minLatitude == null) { // No matter on which var we check
minLatitude = coordinate.getLatitude();
minLongitude = coordinate.getLongitude();
maxLatitude = coordinate.getLatitude();
maxLongitude = coordinate.getLongitude();
} else {
if (coordinate.getLatitude() < minLatitude) {
minLatitude = coordinate.getLatitude();
}
if (coordinate.getLatitude() > maxLatitude) {
maxLatitude = coordinate.getLatitude();
}
if (coordinate.getLongitude() < minLongitude) {
minLongitude = coordinate.getLongitude();
}
if (coordinate.getLongitude() > maxLongitude) {
maxLongitude = coordinate.getLongitude();
}
}
}
}
double meanLatitude = (minLatitude + maxLatitude) / 2;
double meanLongitude = (minLongitude + maxLongitude) / 2;
return new LatLng(meanLatitude, meanLongitude);
}
Мой первый вопрос: есть ли способ вычислить значение уровня масштабирования? (здесь жестко запрограммировано «15»).
Мой второй вопрос: как подогнать ширину полилиний в зависимости от уровня масштабирования камеры? Я добавил прослушиватель:

Код: Выделить всё

mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
Log.d("ZOOM = ", "" +mMap.getCameraPosition().zoom);

});
И я могу изменить ширину полилиний с помощью метода setWidth(...), но не нашел «формулы» для вычисления значения ширины. Теперь полилинии фиксированы и не зависят от уровня масштабирования.
Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/417 ... s-and-zoom
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»