Показать Google Map в эмуляторе Android - PullRequest
1 голос
/ 19 мая 2011

я пытаюсь использовать Google Map в моем приложении для Android.

Я добавил два разрешения для пользователя: ИНТЕРНЕТ и ACCESS_FINE_LOCATION " а также : "use-library android: name =" com.google.android.maps " вот моя деятельность по показу карты:

public class SportEventActivity extends MapActivity {
    private MapController mapController;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sportevent);
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            // Reads the parameters to this view
            String sportName = extras.getString(Utility.SPORT_NAME);
            String venueName = extras.getString(Utility.VENUE_NAME);
            String startDate = extras.getString(Utility.START_DATE);
            String endDate = extras.getString(Utility.END_DATE);
            final String latitude = extras.getString(Utility.LATITUDE);
            final String longitude = extras.getString(Utility.LONGITUDE);   
            TextView text1 = (TextView) findViewById(R.id.sedSportName);
            text1.setText("Sport: " + sportName);
            TextView text2 = (TextView) findViewById(R.id.sedVenue);
            text2.setText("Venue: " + venueName);
            TextView text3 = (TextView) findViewById(R.id.sedStartDate);
            text3.setText("Start date: " + startDate);
            TextView text4 = (TextView) findViewById(R.id.sedEndDate);
            text4.setText("End date: " + endDate);
            MapView mapView = (MapView) findViewById(R.id.mapview2);
            mapView.setBuiltInZoomControls(true);
            mapView.setStreetView(true);
            this.mapController = mapView.getController();
            this.mapController.setZoom(16);
            Double lat = getCoordinate(latitude) * 1E6;
            Double lng = getCoordinate(longitude) * 1E6;
            mapController.setCenter(new GeoPoint(lat.intValue(), lng.intValue()));

        }
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }

    private Double getCoordinate(String coordinate) {
        return Double.parseDouble(coordinate);
    }
}

, а также вы можете найти код макета, связанный с этой деятельностью:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:stretchColumns="1" android:id="@+id/sedLayout">

    <TableRow>
    </TableRow>

    <TableRow>
        <TextView android:layout_column="1" android:padding="3dip"
            android:text="Sport name" android:id="@+id/sedSportName" />
        <TextView android:gravity="right" android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView android:layout_column="1" android:padding="3dip"
            android:text="Venue" android:id="@+id/sedVenue" />
        <TextView android:gravity="right" android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView android:padding="3dip" />
        <TextView android:padding="3dip" android:text="Start Date"
            android:id="@+id/sedStartDate" />
    </TableRow>

    <TableRow>
        <TextView android:padding="3dip" />
        <TextView android:padding="3dip" android:text="End Date"
            android:id="@+id/sedEndDate" />
        <TextView android:gravity="right" android:padding="3dip" />
    </TableRow>
    <TableRow>
        <TextView android:padding="3dip" />
        <View android:layout_height="2dip" android:background="#FF909090" />        
        <TextView android:padding="3dip" />
    </TableRow>

    <TableRow>
    </TableRow>
    <com.google.android.maps.MapView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/mapview2" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:clickable="true"            
            android:apiKey="0aULnfycQonb-l_B1QlcK8u4POo4_oKjnmqMU1Q" />
</TableLayout>

Я могу видеть карту, но проблема в том, что когда я вижу карту, она показывает одну шахматную карту на карте. Я приложил скриншот формы результата. если какой-либо орган, почему он показывает мне карту с границами, пожалуйста, дайте мне решение.

here is the screen shot of

1 Ответ

0 голосов
/ 19 мая 2011

Я думаю, это связано с тем, что вы надуваете представление карты внутри своего TableLayout (но вне TableRow).Я бы обернул все это в вертикально ориентированную RelativeLayout, поместил сначала TableLayout, а затем - mapview.

Я точно продублировал ваш макет и у меня не было проблемы, которую вы видите.Единственная разница - это координаты, по которым я центрирую карту:

m_mapView = (MapView) findViewById(R.id.mapview);
m_mapView.setBuiltInZoomControls(true);
m_mapView.setClickable(true);

m_mapView.setStreetView(true);
m_mapController = m_mapView.getController();
m_mapController.setZoom(16);
m_mapController.setCenter(new GeoPoint((int)(47.975 * 1E6), (int)(17.056 * 1E6)));!

Если вы отправляете строку координат, выполняете синтаксический анализ и переходите в setCenter, я могу проверить, если это проблема.В этом случае это похоже на ошибку:

screenshot

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