我正在开发一个应用程序,它需要能够显示我的位置,显示我选择的两点之间的路线,显示附近的地方,如餐馆和咖啡馆等,还应该让我在任何我想要的地方办理登机手续。更简单地说,我需要一个较小版本的谷歌地图用于我的 android 应用程序,其中包含地图、本地、签到和导航功能。
我进行了很多搜索,几乎没有发现任何有用的东西可以告诉我我是否能够做这些事情?我只想在我的应用程序中显示具有相同布局和图形等的较小版本的 Google 地图(包括本地、导航和签到功能)。可能吗?如果是,那么有人可以帮我吗?
我正在开发一个应用程序,它需要能够显示我的位置,显示我选择的两点之间的路线,显示附近的地方,如餐馆和咖啡馆等,还应该让我在任何我想要的地方办理登机手续。更简单地说,我需要一个较小版本的谷歌地图用于我的 android 应用程序,其中包含地图、本地、签到和导航功能。
我进行了很多搜索,几乎没有发现任何有用的东西可以告诉我我是否能够做这些事情?我只想在我的应用程序中显示具有相同布局和图形等的较小版本的 Google 地图(包括本地、导航和签到功能)。可能吗?如果是,那么有人可以帮我吗?
我以前发现这非常有用。 http://code.google.com/p/android-protips-location/
但是,请注意,谷歌最近升级了他们的 android map api,我不确定他们是否更新了这个应用程序以匹配。
您将需要做几件事。
首先,要合并 Google 地图,您可以在此处获得完整的参考资料。
简单的步骤:
1 按照此处的步骤操作:这将有助于在您的屏幕上添加一个简单的谷歌地图。
2 为了能够获取您自己的位置,您需要在 android 中使用 LocationListener 和 LocationManager。为此,首先在您的活动中实现LocationListener。
public class LocationActivity extends Activity implements LocationListener
3 然后你需要在你的 onCreate() 方法中实例化一些设置
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the location manager
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// Define the criteria how to select the provider
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
// Initialize the location fields
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
}
}
4 您需要能够请求定期位置更新。将此包含在您的 onResume() 方法中。
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400, 1, this);
}
5 如果应用程序进入暂停周期,则不需要进行这些更新。
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
6 步骤 2 中的位置监听器实现要求您有一个 onLocationChanged 监听器,实现它:
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude());
int lng = (int) (location.getLongitude());
}
7 添加这两种方法以通知您的位置设置提供商 - GPS 或网络。
public void onProviderDisabled(String arg0) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
public void onProviderEnabled(String arg0) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
8 现在我们需要将其链接到您的谷歌地图。我将向您展示一个使用 google maps API 生成市场以显示您当前位置的示例。其他用法可以从 API 中推断出来。
首先在您的代码中创建私有字段:
private GoogleMap mMap;
Marker m;
9 在您的 onCreate 方法中添加这些 - 这会将您的默认标记位置实例化为 0,0 纬度和经度。
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
m = mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0))
.title("Position"));
10 在您的 onLocationChanged 方法中,我们需要在位置更改时刷新此标记。所以添加:
m.setPosition(new LatLng(lat, lng));
m.setTitle("Your Position");
// Move the camera instantly to marker with a zoom
// of 15.
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 15));
这将是一种使用您的位置更新标记的简单方法,并且应该是您在 android 中的 Google 地图和位置 API 的一个很好的介绍。