4

MapActivityクラスを拡張すると、エラーが表示されます。

エラーは次のとおりです。データ型を解決できません。なぜ?

プロジェクトにmaps.jarを追加する方法は?

ありがとう。

4

3 に答える 3

9

Maps External APIの概要で説明されているように、Mapsプロジェクトを設定するために必要な手順を実行していない可能性があります。追加するmaps.jarはありません。私がリンクしたドキュメントを読んでください。そうすれば、すべて設定されているはずです。

于 2010-02-17T17:08:46.157 に答える
0

Googleマップビュー: マップアクティビティの作成

于 2012-04-26T17:06:49.143 に答える
-1

これが私のコードです:

    import java.io.IOException;
    import java.util.List;
    import java.util.Locale;

    import android.content.Context;
    import android.graphics.Canvas;
    import android.location.Address;
    import android.location.Geocoder;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.Toast;

    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;

    public class MyMapsActivity extends MapActivity 
    {    

            MapView mapView;
        MapController mapController;
        LocationManager locationManager;
        LocationListener locationListener;
            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState)
                 {
                   super.onCreate(savedInstanceState);
                   setContentView(R.layout.main);

                    mapView = (MapView) findViewById(R.id.mapView);
                    // enable Street view by default
                    mapView.setStreetView(true);

                    // enable to show Satellite view
                   // mapView.setSatellite(true);

                  // enable to show Traffic on map
                   // mapView.setTraffic(true);

                    mapView.setBuiltInZoomControls(true);

                    mapController = mapView.getController();
                    mapController.setZoom(5); 


       locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);  

       locationListener = new GPSLocationListener();

       locationManager.requestLocationUpdates(
      LocationManager.GPS_PROVIDER, 
      0, 
      0, 
      locationListener);

    Touchy t = new Touchy();
    List<Overlay> overlayList = mapView.getOverlays();
    overlayList.add(t);

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


class Touchy extends Overlay
{
 public boolean onTap(GeoPoint point, MapView mapView) 
     {
       Context contexto = mapView.getContext();
       String msg = "Latitude : " + point.getLatitudeE6()/1E6 + " - " + 
                    "Longitude : " + point.getLongitudeE6()/1E6;

      Toast toast = Toast.makeText(contexto, msg, Toast.LENGTH_SHORT);
     toast.show();

      return true;
     }
  }


   private class GPSLocationListener implements LocationListener 
   {
    public void onLocationChanged(Location location)
    {
    if (location != null)
    {
      GeoPoint point = new GeoPoint(
          (int) (location.getLatitude() * 1E6), 
          (int) (location.getLongitude() * 1E6));

      Toast.makeText(getBaseContext(), 
          "Latitude: " + location.getLatitude() + 
          " Longitude: " + location.getLongitude(), 
          Toast.LENGTH_SHORT).show();

      mapController.animateTo(point);
      mapController.setZoom(5);
      mapView.invalidate();
    }

      if (location != null)
      {
          GeoPoint point=null;
          String address = ConvertPointToLocation(point);
          Toast.makeText(getBaseContext(), address, Toast.LENGTH_SHORT).show();

       }


    }

  public String ConvertPointToLocation(GeoPoint point) {   
        String address = "";
        Geocoder geoCoder = new Geocoder(
            getBaseContext(), Locale.getDefault());
        try {
          List<Address> addresses = geoCoder.getFromLocation(
            point.getLatitudeE6()  / 1E6, 
            point.getLongitudeE6() / 1E6, 1);

          if (addresses.size() > 0) {
            for (int index = 0; 
        index < addresses.get(0).getMaxAddressLineIndex(); index++)
              address += addresses.get(0).getAddressLine(index) + " ";
          }
        }
        catch (IOException e) {        
          e.printStackTrace();
        }   

        return address;
      }

public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

}

public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

} 
  }

public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

}

public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}
}

レイアウトコーディング:

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

   <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="Your MAP API Key"

    />

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

    </RelativeLayout>

独自のAPIキープロセスを取得するためのリンク:

http://sanathnandasiri.blogspot.in/2011/04/obtaining-google-maps-api-key-for.html

于 2012-09-19T06:56:20.653 に答える