0

このコードにはいくつかの問題があります。ここでは Google マップにアクセスできません。マップの代わりに正方形のボックスが表示されます。誰でもこの問題を解決するのを手伝ってくれますか?

GPSApp.java クラス

パッケージcom.android.gpsapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

 public class GPSApp extends MapActivity
 {
  MapView mapView; 
  MapController mc;
  GeoPoint p;

 @Override
 public void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mapView = (MapView) findViewById(R.id.mapView);
    mapView.setBuiltInZoomControls(true);

    LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
    View zoomView = mapView.getZoomControls(); 

    zoomLayout.addView(zoomView, new LinearLayout.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT)); 

    mapView.displayZoomControls(true);

    mc = mapView.getController();

    String coordinates[] = {"26.456435","80.330606"};
    double lat = Double.parseDouble(coordinates[0]);
    double lng = Double.parseDouble(coordinates[1]);

    p = new GeoPoint(
        (int) (lat * 1E6), 
        (int) (lng * 1E6));

    mc.animateTo(p);
    mc.setZoom(17); 
    mapView.invalidate();

    mapView.setSatellite(true);
    mapView.setStreetView(true);
    mapView.setTraffic(true);
}

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

Main.xml と API_key 私はすでに与えました

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

   <LinearLayout android:id="@+id/zoom" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    /> 

   <com.google.android.maps.MapView 
   android:id="@+id/mapView" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:enabled="true"
   android:clickable="true"
   android:apiKey="API_Key"
   /> 

</RelativeLayout>

AndroidManifes.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.gpsapp"
     android:versionCode="1"
     android:versionName="1.0">
    <application android:label="@string/app_name" >

    <uses-library android:name="com.google.android.maps" />

    <activity android:name="GPSApp" 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>
  <uses-permission android:name="android.permission.INTERNET" />
</manifest> 
4

3 に答える 3

0

FragmentActivity を拡張してみる

public class Maps extends FragmentActivity {
    GoogleMap map;
    double lat;
    double lan;
    boolean flag = false;

    // private LocationManager lm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapptry);

        map = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();
             }
        }
于 2013-06-24T11:33:12.930 に答える
0

ここで考えられる主な問題はGoogle Maps API V1、現在の Google Maps API バージョンが 2 であるのに、実装しようとしているということです。この場合、Google Maps API V1 で Google Maps API V2 キーを使用しようとしているかのどちらかです。が発生します (地図はなく、ズーム コントロールのある正方形のみ)

API V1 キーを生成した場合 (これは本当に疑問です...)、問題はおそらく Google API コンソールでアプリケーションを定義した方法のどこかにあります。

API V1 は廃止されたため、Google API v2 に移行することをお勧めします。

これは、アプリケーションに Google Maps API V2 を実装する方法について書いたブログ投稿です。

Google マップ API V2

于 2013-06-24T11:38:52.113 に答える
0

Android はそのようなことにうるさく思っていたので、<uses-permission>以前の に移動してみることができます。<application>

それでも問題が解決しない場合は、エミュレーターまたはデバイスでマップ アプリケーションを実行してみてください。同じ問題が発生する場合は、Google から地図情報をダウンロードする機能に問題があります。

マップ アプリケーションが機能し、自分のアプリが機能しない場合は、API キーが正しくありません (マップ V1 アプリでマップ V2 API キーを使用しようとしているなど)。コードは Maps V1 用に設定されており、Maps V1 API キーを取得できなくなりました。Maps V1 は正式に廃止されたため、Maps V2 への切り替えを検討する必要があります。

于 2013-06-24T11:34:11.343 に答える