Как показать легенду карты на Android-карте Google? - PullRequest
2 голосов
/ 25 апреля 2011

Веб-версия карт Google позволяет разработчику отображать легенду карты, указывающую масштаб карты.

Есть ли способ сделать это с помощью Android API?

Дополнительная информация:

  • Я хочу показать графическое отображение "это расстояние равно X метрам", как если бы вы переходили на карту Google.
  • Должно быть возможно использовать: getProjection (), но я просто надеялся, что есть способ просто включить легенду.
  • Если вы откроете приложение Google Maps и выберете «Лаборатории», вы можете включить «Шкалу», это то, что я хочу.

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Посмотрите, как они сделали для очень похожего Osmdroid, который предназначен для OpenStreetMap

ScaleBarOverlay

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

1 голос
/ 26 апреля 2011

Создайте макет с текстовым представлением, загрузите его в свой onCreate, а затем запишите в него масштаб карты, используя setText ().Пример макета приведен ниже:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:id="@+id/root">
        <com.google.android.maps.MapView
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:enabled="true"
                                 android:clickable="true"
                                 android:id="@+id/map"
                 android:apiKey="<YOUR KEY>"
                 android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentL
eft="true" android:layout_alignParentBottom="true"/>
                <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_marginLeft="10sp" android:layout_marginRight="10sp" android:layout_marginTop="10sp" android:id="@+id/scale" android:gravity="center_horizontal"></TextView>
</RelativeLayout>

В своей деятельности вы можете выполнить

((TextView)findViewById(R.id.scale)).setText("<map scale>");

, и он должен появиться в верхней части карты.Вы можете стилизовать текстовое представление так, как хотите.

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