网上也看了其他的博客帖子,就是不显示地图,愁死我了,请各位帮忙看下,谢谢了package com.dzy.map;import java.util.List;
import java.util.Locale;import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;import com.google.android.maps.*;public class MyMapActivity extends MapActivity { private MapView mapView;
private MapController mapController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_map);
//setContentView(R.id.map_view);
mapView = (MapView)findViewById(R.id.map_view);
mapController = mapView.getController();
mapView.setSatellite(true);
mapView.setStreetView(true);
mapView.setTraffic(true);
mapView.setClickable(true);
GeoPoint center = mapView.getMapCenter();
int latSpan = mapView.getLatitudeSpan();
int longSpan = mapView.getLongitudeSpan();
int x = 10;
int y = 10;
MapView.LayoutParams lp;
lp = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, x, y,MapView.LayoutParams.TOP_LEFT);
View zoomControls = mapView.getZoomControls();
mapView.addView(zoomControls,lp);
mapView.displayZoomControls(false);
mapController.setZoom(17);
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
locationManager.requestLocationUpdates(provider, 2000, 10, new LocationListener(){ @Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
updateWithNewLocation(location);
} @Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
updateWithNewLocation(null);
} @Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
} @Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_map, menu);
return true;
}
protected boolean isRouteDisplayed(){
return false;
}
private void updateWithNewLocation(Location location){
String latLongString;
TextView myLocationText = (TextView)findViewById(R.id.myLoactionText);
String addressString = "No addressfound";
if(location != null){
double geoLat = location.getLatitude()*1E6;
double geoLng = location.getLongitude()*1E6;
GeoPoint point = new GeoPoint((int)geoLat,(int)geoLng);
mapController.animateTo(point);
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "Lat:"+lat+" Lng:"+lng;
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Geocoder gc = new Geocoder(this,Locale.getDefault());
try{
List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
StringBuilder sb = new StringBuilder();
if(addresses.size() > 0){
Address address = addresses.get(0);
for(int i=0;i<address.getMaxAddressLineIndex();i++){
sb.append(address.getAddressLine(i)).append("\n");
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
}
addressString = sb.toString();
}
}catch(Exception e){
}
}else{
latLongString = "No location found";
}
myLocationText.setText("Your current position is:\n"+latLongString+"\n"+addressString);
}}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dzy.map"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAQSZmD5QIWye2kxcZnaiV8CZtwSNPB344" />
<permission
android:name="com.dzy.map.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />"
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.maps"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"/>//赋予各种权限<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps"/>//加载google地图包
<activity
android:name="com.dzy.map.MyMapActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAQSZmD5QIWye2kxcZnaiV8CZtwSNPB344" />
</application> </manifest>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MyMapActivity" > <TextView
android:id="@+id/myLoactionText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello"
/>
<com.google.android.maps.MapView
android:id="@+id/map_view"
class="com.google.android.maps.MapView "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="true"
android:clickable="true"
android:apiKey="AIzaSyAQSZmD5QIWye2kxcZnaiV8CZtwSNPB344"
/>
</LinearLayout>
import java.util.Locale;import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;import com.google.android.maps.*;public class MyMapActivity extends MapActivity { private MapView mapView;
private MapController mapController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_map);
//setContentView(R.id.map_view);
mapView = (MapView)findViewById(R.id.map_view);
mapController = mapView.getController();
mapView.setSatellite(true);
mapView.setStreetView(true);
mapView.setTraffic(true);
mapView.setClickable(true);
GeoPoint center = mapView.getMapCenter();
int latSpan = mapView.getLatitudeSpan();
int longSpan = mapView.getLongitudeSpan();
int x = 10;
int y = 10;
MapView.LayoutParams lp;
lp = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, x, y,MapView.LayoutParams.TOP_LEFT);
View zoomControls = mapView.getZoomControls();
mapView.addView(zoomControls,lp);
mapView.displayZoomControls(false);
mapController.setZoom(17);
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
locationManager.requestLocationUpdates(provider, 2000, 10, new LocationListener(){ @Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
updateWithNewLocation(location);
} @Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
updateWithNewLocation(null);
} @Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
} @Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_map, menu);
return true;
}
protected boolean isRouteDisplayed(){
return false;
}
private void updateWithNewLocation(Location location){
String latLongString;
TextView myLocationText = (TextView)findViewById(R.id.myLoactionText);
String addressString = "No addressfound";
if(location != null){
double geoLat = location.getLatitude()*1E6;
double geoLng = location.getLongitude()*1E6;
GeoPoint point = new GeoPoint((int)geoLat,(int)geoLng);
mapController.animateTo(point);
double lat = location.getLatitude();
double lng = location.getLongitude();
latLongString = "Lat:"+lat+" Lng:"+lng;
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Geocoder gc = new Geocoder(this,Locale.getDefault());
try{
List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
StringBuilder sb = new StringBuilder();
if(addresses.size() > 0){
Address address = addresses.get(0);
for(int i=0;i<address.getMaxAddressLineIndex();i++){
sb.append(address.getAddressLine(i)).append("\n");
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
}
addressString = sb.toString();
}
}catch(Exception e){
}
}else{
latLongString = "No location found";
}
myLocationText.setText("Your current position is:\n"+latLongString+"\n"+addressString);
}}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dzy.map"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAQSZmD5QIWye2kxcZnaiV8CZtwSNPB344" />
<permission
android:name="com.dzy.map.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />"
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.maps"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"/>//赋予各种权限<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps"/>//加载google地图包
<activity
android:name="com.dzy.map.MyMapActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAQSZmD5QIWye2kxcZnaiV8CZtwSNPB344" />
</application> </manifest>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MyMapActivity" > <TextView
android:id="@+id/myLoactionText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello"
/>
<com.google.android.maps.MapView
android:id="@+id/map_view"
class="com.google.android.maps.MapView "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="true"
android:clickable="true"
android:apiKey="AIzaSyAQSZmD5QIWye2kxcZnaiV8CZtwSNPB344"
/>
</LinearLayout>
你还是试试web版的api吧