将谷歌地图添加到我的应用程序和标记

时间:2011-04-18 14:16:27

标签: android google-maps geolocation

package com.geoo;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;

public class localisation extends ActivityBase{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
setContentView(R.layout.localisation);

/* Use the LocationManager class to obtain GPS locations */

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

LocationListener mlocListener = new MyLocationListener();

mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

}

/* Class My Location Listener */

public class MyLocationListener implements LocationListener

{

@Override

public void onLocationChanged(Location loc)

{

loc.getLatitude();

loc.getLongitude();

String Text = "My current location is: " + "Latitud = " + loc.getLatitude()+  "Longitud = " + loc.getLongitude();
Toast.makeText( getApplicationContext(),Text, Toast.LENGTH_SHORT).show();
}

@Override

public void onProviderDisabled(String provider)
{
Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT ).show();
}

@Override

public void onProviderEnabled(String provider)
{
Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();
}

@Override

public void onStatusChanged(String provider, int status, Bundle extras)

{
}
}/* End of Class MyLocationListener */

}/* End of UseGps Activity */

现在我想添加地图和标记

我在main.xml中添加了MapView

<com.google.android.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="Your Maps API Key"
    />

中有很多错误
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MapView.LayoutParams;

我可以解决这些问题吗

我阅读了很多文件,但我不知道如何去做。

谢谢

4 个答案:

答案 0 :(得分:3)

要在Google地图上添加标记,您可以使用叠加层。 您可以使用 http://developer.android.com/resources/tutorials/views/hello-mapview.html

最诚挚的问候 阿努普

答案 1 :(得分:3)

对于mapView setContentView(R.layout.localisation);应该以包含mapview的xml资源命名 - &gt;的setContentView(R.layout.main);

对于标记,请参阅开发教程,但在全局步骤中为您提供想法:

1-制作自定义叠加层

2-通过mapview.getOverlays()获取mapOverlay;

3 - 获取自定义重定位的实例

4-将OverlayItems添加到此自定义覆盖

5 - 并将此自定义覆盖添加到mapoverlay

这些是步骤

答案 2 :(得分:2)

首先你需要一个Maps API密钥,所以启动HERE然后你需要实际使用mapview,在你的XML中你需要在setContentView中指定mapview。

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
setContentView(R.layout.mapview);

要使用位置管理器在地图上放置标记,您可以使用ItemizedOverlay。您还需要在Manifest XML中设置访问权限,以便GPS位置使用。确保访问权限标记位于应用程序标记之外。

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

最后,这是一个很好的教程,你应该参考Google Map View

答案 3 :(得分:2)

而不是

public class localisation extends ActivityBase

尝试使用

public class localisation extends MapActivity

这可以帮助您删除这些错误