2013-05-06 63 views
1

嗨,这里我正试图加载我在地图上的位置,但我只是空白画布。无法获得连接工厂客户端错误,我无法看到地图

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

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

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="com.way.fameceramic.permission.MAPS_RECEIVE" /> 

<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" /> 

    <activity 
     android:name="com.exmp.way.MapActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

这是mainfest代码

这里布局文件代码

<com.google.android.maps.MapView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mapView" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:clickable="true" 
android:apiKey="xxx-xxxxxxxxxxx"/> 

出于安全原因,我在这里

import java.util.List; 
import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 
import com.google.android.maps.Overlay; 
import com.google.android.maps.OverlayItem; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.drawable.Drawable; 
import android.view.Menu; 

public class MapViewActivity extends MapActivity { 

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

     // Displaying Zooming controls 
    MapView mapView = (MapView) findViewById(R.id.mapView); 
    mapView.setBuiltInZoomControls(true); 

    /** 
    * Changing Map Type 
    * */ 
    // mapView.setSatellite(true); // Satellite View 
    // mapView.setStreetView(true); // Street View 
    mapView.setTraffic(true); // Traffic view 

    /** 
    * showing location by Latitude and Longitude 
    * */   
    MapController mc = mapView.getController(); 
    double lat = Double.parseDouble("22.270928"); 
    double lon = Double.parseDouble("70.789909"); 
    GeoPoint geoPoint = new GeoPoint((int)(lat * 1E6), (int)(lon * 1E6)); 
    mc.animateTo(geoPoint); 
    mc.setZoom(15); 
    mapView.invalidate(); 


    /** 
    * Placing Marker 
    * */ 
    List<Overlay> mapOverlays = mapView.getOverlays(); 
    Drawable drawable = this.getResources().getDrawable(R.drawable.mark_red); 
    AddItemizedOverlay itemizedOverlay = 
     new AddItemizedOverlay(drawable, this); 


    OverlayItem overlayitem = new OverlayItem(geoPoint, "Fame Ceramic", "Way web Solution"); 

    itemizedOverlay.addOverlay(overlayitem); 
    mapOverlays.add(itemizedOverlay); 

} 

@Override 
protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 

    } 



} 

AddItemiz禁用键

MapActivity代码edOverlay类的源这里

import java.util.ArrayList; 

import android.content.Context; 
import android.graphics.drawable.Drawable; 
import android.util.Log; 
import android.view.MotionEvent; 
import android.widget.Toast; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.MapView; 
import com.google.android.maps.OverlayItem; 

public class AddItemizedOverlay extends ItemizedOverlay<OverlayItem> { 


    private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>(); 

    private Context context; 

    public AddItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 
    } 

    public AddItemizedOverlay(Drawable defaultMarker, Context context) { 
     this(defaultMarker); 
     this.context = context; 
    } 

    @Override 
    protected OverlayItem createItem(int i) { 
     return mapOverlays.get(i); 
    } 

    @Override 
    public int size() { 
     return mapOverlays.size(); 
    } 

    @Override 
    protected boolean onTap(int index) { 
     Log.e("Tap", "Tap Performed"); 
     return true; 
    } 

    public void addOverlay(OverlayItem overlay) { 
     mapOverlays.add(overlay); 
     this.populate(); 
    } 

    /** 
    * Getting Latitude and Longitude on Touch event 
    * **/ 
    @Override 
    public boolean onTouchEvent(MotionEvent event, MapView mapView) 
    { 

     if (event.getAction() == 1) {     
      GeoPoint geopoint = mapView.getProjection().fromPixels(
       (int) event.getX(), 
       (int) event.getY()); 
      // latitude 
      double lat = geopoint.getLatitudeE6()/1E6; 
      // longitude 
      double lon = geopoint.getLongitudeE6()/1E6; 
      Toast.makeText(context, "Lat: " + lat + ", Lon: "+lon, Toast.LENGTH_SHORT).show(); 
     }        
     return false; 
    } 

} 

在这里,我过去所有的代码,我用....给我的解决方案,我错了 我刚刚得到这个enter image description here

+0

当您打开Goog​​le地图时,您是否看到更多信息?您的问题似乎是您的设备实际上并未从Google下载地图。 – DigCamara 2013-05-06 15:27:56

+0

https://developers.google.com/maps/documentation/android/。按照链接中的步骤操作 – Raghunandan 2013-05-06 16:22:35

回答

0

你需要一个“谷歌程序员账户”,用于向得到它,也许是。

相关问题