gpt4 book ai didi

android - Android 应用程序中的谷歌地图 (V2)

转载 作者:行者123 更新时间:2023-11-30 03:40:18 25 4
gpt4 key购买 nike

刚刚熟悉 Google Maps API (v2) 并将其集成到我的 Android 应用程序中,我有 2 个问题,但我没有找到最好的方法:

首先,这始终关注当前用户位置(如 GPS 应用程序)。我所做的是在 onCreate 中获取用户位置(根据我在这里和那里发现的一些东西))

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

MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(bestProvider);
LatLng currentUserPosition = new LatLng(location.getLatitude(), location.getLongitude());
// setting the cam position to current position
CameraPosition camPosition = new CameraPosition(currentUserPosition, 17f, 30f, 0f);
CameraUpdate update = CameraUpdateFactory.newCameraPosition(camPosition);
mapFragment.getMap().animateCamera(update);

// updating map every second
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
1000, // 1-second interval.
10, // 10 meters.
listener);
}

其中 listener 是一个 LocationListener 配置如下:

private final LocationListener listener = new LocationListener() {

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

}

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

}

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

}

@Override
public void onLocationChanged(Location location) {
CameraPosition camPosition = new CameraPosition(new LatLng(location.getLatitude(), location.getLongitude()), 17f, 30f, 0f);
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
CameraUpdate update = CameraUpdateFactory.newCameraPosition(camPosition);
mapFragment.getMap().animateCamera(update);
}
};

这样做正确吗?
第二件事是用户可以触摸 map 并在 map 上动态添加标记(带有他自己的标题和东西)。我试图找到(但没有找到)一种在标记之间绘制路径并像 gps 应用程序一样运行的方法。这可能吗?
谢谢

最佳答案

我强烈建议遵循 documentation 中的开发人员指南教程了解将 Maps Android API v2 集成到您的应用程序中的正确方法,并检查 sample code与 Google Play 服务 SDK bundle 在一起。

自动跟踪用户(我的位置点)位置的最佳(也是最简单)方法是实现 OnMyLocationChangeListener 并在该接口(interface)提供的回调中相应地更新相机。

要创建一系列连接标记的线段,您应该能够使用 Polyline 类。 编辑:您可能会发现这个相关的answer对于在两个标记之间绘制路径很有用。

关于android - Android 应用程序中的谷歌地图 (V2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15854044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com