【问题标题】:google map display谷歌地图显示
【发布时间】:2013-03-16 12:23:24
【问题描述】:

我在谷歌地图屏幕中遇到问题,它显示空白谷歌地图屏幕包含整个屏幕地图中的图块没有生成

我已经正确完成了所有设置,根据从网上获取相同问题的解决方案,我仍然无法解决问题,请任何人都可以帮助我吗?

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gmaptest5"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="17" />    

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.example.gmaptest5.Gmap5MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

  <uses-library android:name="com.google.android.maps"/>
    <meta-data
  android:name="com.google.android.maps.v2.API_KEY"
  android:value="MY API KEY"/>

  </application>

 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission     android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

  <uses-feature
  android:glEsVersion="0x00020000"
  android:required="true"/>

 <permission
  android:name="com.example.gmaptest5.permission.MAPS_RECEIVE"
  android:protectionLevel="signature"/>
 <uses-permission android:name="com.example.gmaptest5.permission.MAPS_RECEIVE"/> 

 </manifest>

Main.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
 >
 <com.google.android.maps.MapView
     android:id="@+id/mapview1"
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:enabled="true" 
     android:clickable="true" 
  android:apiKey="MY API KEY" />

 </LinearLayout>

Main.Java

   public class Gmap5MainActivity extends MapActivity {
private MapView myMapView;
LocationManager locationManager;
private Location myLocation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gmap5_main);

    myMapView = (MapView)findViewById(R.id.mapview1);
    double lat = 19.7888;
       double longi = 52.535;        

      GeoPoint p = new GeoPoint((int) (lat *1E6),(int) (longi *1E6));
    //GeoPoint p = new GeoPoint((int) (location.getLatitude()* 1000000), (int)  (location.getLatitude()* 1000000));
    MapController mc = myMapView.getController();

    mc.setZoom(18);
    mc.animateTo(p);
    // Enable Sattelite-Mode
    myMapView.setSatellite(true);
    myMapView.getMapCenter();
    myMapView.setBuiltInZoomControls(true);
    myMapView.displayZoomControls(true);
    myMapView.invalidate();   
    myMapView.getOverlays();
    myMapView.getProjection();      
    this.myLocation = new Location("gps");
    this.myLocation.setLongitude(77.52436144125092);
    this.myLocation.setLatitude(13.05096452223662);
    Double lat1 = myLocation.getLatitude();
    Double longi1 = myLocation.getLongitude();
    GeoPoint point = new GeoPoint(lat1.intValue(), longi1.intValue());
    mc.setCenter(point);*/
}
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
    if (keyCode == KeyEvent.KEYCODE_I) {
    myMapView.getController().setZoom(myMapView.getZoomLevel() + 1);

    return true;
    } else if (keyCode == KeyEvent.KEYCODE_O) {
    myMapView.getController().setZoom(myMapView.getZoomLevel() - 1);
    return true;
    } else if (keyCode == KeyEvent.KEYCODE_S) {
    myMapView.setSatellite(true);
    return true;
    } else if (keyCode == KeyEvent.KEYCODE_T) {
    myMapView.setSatellite(false);
    myMapView.setTraffic(true);
    return true;
    }
    return false;
    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_gmap5_main, menu);
    return true;
}

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

【问题讨论】:

  • 除非您导出并签署应用程序,否则 Google 地图功能将不起作用。除非您在设备上运行它们,否则它们也不起作用。

标签: android google-maps


【解决方案1】:

您正在将Google Map API V1API V2 混合使用,如果您想使用Google Map V2 就像您的Manifest 文件所显示的那样,那么您可以查看我写的这篇关于如何将Google map API V2 添加到您的博客文章应用:

Google Map API V2 Android

如果您想使用API V1,那么您必须更改您的Manifest 文件,因为它当前设置为使用API V2,请点击此链接:

https://developers.google.com/maps/documentation/android/v1/hello-mapview

【讨论】:

  • 感谢您的帮助,我已尝试使用 API1 和 API2 这两种解决方案,但找不到解决方案。任何人都可以给我 API1 或 API2 的现成示例帮助吗?
  • 如果您在实现 API V2 方面需要任何帮助,我对 Google MAP API V1 不太熟悉。那么你可以问任何问题。
  • 如果您有现成的 API2 示例,请给我参考,否则请建议我参考网站,我可以在其中轻松解决在平板设备中获取谷歌地图的方法
  • @Dipali,我没有现成的地图应用程序实现,但我为您提供了如何实现这一点的指南。如果您在我的指南中遇到任何问题,请告诉我到底是什么问题。
  • 我已经尝试过 API1 和 API2 的这些示例,但在这两个示例中我都遇到了问题。在 API1 示例中,我无法在选项卡中运行我的应用程序,它在谷歌地图中给出空白图块,而在 API2 示例中,它在运行中给出问题,它被强制关闭。我该怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多