Полилинии на карте Android исчезают при уменьшении масштаба

Я использую приведенный ниже код, чтобы нарисовать набор вертикальных линий с интервалом в 5 градусов на карте Google (Android API v2). Все отлично работает до тех пор, пока не уменьшится примерно до уровня масштабирования 5.1, после чего все мои линии исчезнут. Это ошибка в моем коде или что-то, что делает Maps API специально? Как я могу заставить эти линии отображаться при всех масштабах масштабирования?

Спасибо большое.

if (gMap != null)   {
            double lat = loc_service.getLatitude();
            double lng = loc_service.getLongitude();
            LatLngBounds bounds = new LatLngBounds(new LatLng(lat-(MAP_WIDTH/2), lng-(MAP_WIDTH/2)), new LatLng(lat+(MAP_WIDTH/2), lng+(MAP_WIDTH/2)));
            CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 720, 720, 0);
            gMap.setMyLocationEnabled(true);
            gMap.moveCamera(cu);

            // initialize the time marker AT ONE  MINUTE INTERVALS
            time_markers = new ArrayList<Polyline>();
            // calculate distance to zero-second mark
            double offset = getLngOffset();
            for (int i=-MARK_RNG; i<MARK_RNG; i++)  {
                PolylineOptions plOptions = new PolylineOptions()
                    .add(new LatLng(90, (lng-offset + (i*5))))
                    .add(new LatLng(-90, (lng-offset + (i*5))))
                    .width(2)
                    .color(Color.BLUE);

                time_markers.add(gMap.addPolyline(plOptions));
            }
        }

person user2650541    schedule 04.08.2013    source источник


Ответы (1)


Это похоже на ошибку в библиотеке сервисов Google Play, аналогичную . тот, о котором я сообщал некоторое время назад.

я только что попробовал

map.addPolyline(new PolylineOptions()
        .add(new LatLng(90, 5))
        .add(new LatLng(-90, 5))
        .width(2)
        .color(Color.BLUE));

и он рисует линию от 0,0 до 0,5 при низком уровне масштабирования и от 0,5 до 90,5 после увеличения. Оба, конечно, неверны.

Обходным путем было бы использование 85 вместо этого.

map.addPolyline(new PolylineOptions()
        .add(new LatLng(85, 5))
        .add(new LatLng(-85, 5))
        .width(2)
        .color(Color.BLUE));

но не спрашивайте меня, почему это работает правильно именно так...

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

person MaciejGórski    schedule 04.08.2013
comment
Ваше исправление 85/-85 сработало - спасибо. Возможно, 90/-90 находится за пределами проекции (я помню, где-то читал, что сама карта идет только до +/- 85 градусов широты). Я добавлю свою проблему в отчет об ошибке в надежде получить ответ. - person user2650541; 05.08.2013