Всегда показывайте средства управления масштабированием на MapView

Вы можете попробовать комбинацию gzdeflate (raw deflate format) для сжатия ваших данных и base64_encode для использования только тех символов, которые допускается без кодирования в процентах (дополнительно обмениваются символами + и / на - и _):

$output = rtrim(strtr(base64_encode(gzdeflate($input, 9)), '+/', '-_'), '=');

И наоборот:

$output = gzinflate(base64_decode(strtr($input, '-_', '+/')));

Здесь Например:

$input = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';

// percent-encoding on plain text
var_dump(urlencode($input));

// deflated input
$output = rtrim(strtr(base64_encode(gzdeflate($input, 9)), '+/', '-_'), '=');
var_dump($output);

Экономия в этом случае составляет около 23%. Но фактическая эффективность этой процедуры сжатия зависит от данных, которые вы используете.

17
задан Intrications 28 May 2009 в 13:08
поделиться

2 ответа

Решил, поставив мои собственные ZoomControls в моем макете xml:

<ZoomControls android:id="@+id/zoomcontrols"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

, а затем настройку onClickListeners для обработки масштабирования:

    zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
    zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mapController.zoomIn();
        }
    });
    zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mapController.zoomOut();
        }
    });
22
ответ дан 30 November 2019 в 11:52
поделиться

Решение Intrications действительно работает, но вы теряете встроенную функциональность, когда кнопка отключается, когда вы полностью увеличиваете или уменьшаете масштаб. Вы можете сохранить эту функциональность, используя вместо этого следующее:

localMapView.getZoomButtonsController().setAutoDismissed(false);

Однако это не позволяет вам размещать элементы управления там, где вы хотите на панели, и хотя оно не исчезает, оно не отображается в первый раз, пока пользователь касается экрана один раз. Я попытался вызвать setVisible(true) на контроллере, но по какой-то причине это не работает.

14
ответ дан 30 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: