在Android Emulator中显示Google地图

在Android Emulator中显示Google地图,android,google-maps,Android,Google Maps,我试图在我的android应用程序中使用谷歌地图 我为用户添加了两个权限:INTERNET和访问\u FINE\u LOCATION“ 而且: “使用android库:name=“com.google.android.maps” 以下是我的地图展示活动: public class SportEventActivity extends MapActivity { private MapController mapController; @Override protected

我试图在我的android应用程序中使用谷歌地图

我为用户添加了两个权限:INTERNET和访问\u FINE\u LOCATION“ 而且: “使用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>

我可以看到地图,但问题是当我看到地图时,地图上会显示一张棋盘。我附上了一个截图形式的结果。如果有人为什么给我看带边框的地图,请给我一个解决方案

我认为这是因为在TableLayout内部(但在TableRow外部)膨胀mapview。我会用一个垂直方向的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的坐标字符串,我可以测试这是否是问题所在。在这种情况下,它看起来像一个bug:


我指的是你正在膨胀的完整布局,也许你可以编辑你的问题并添加这些信息。