将相机重定向到当前位置 Google Maps API v2
Posted
技术标签:
【中文标题】将相机重定向到当前位置 Google Maps API v2【英文标题】:Redirect camera to current position Google Maps API v2 【发布时间】:2015-03-13 01:18:20 【问题描述】:我正在尝试将相机移动到我当前的位置,我尝试过的是:
我的 onCreateView 看起来像:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View inflatedView = inflater.inflate(R.layout.fragment_photos, container, false);
try
MapsInitializer.initialize(getActivity());
catch (Exception e)
// TODO handle this situation
mMapView = (MapView) inflatedView.findViewById(R.id.mapView);
mMapView.onCreate(mBundle);
setUpMapIfNeeded(inflatedView);
return inflatedView;
我的 onCreate 看起来像:
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
mBundle = savedInstanceState;
而且我有一个名为 setUpMapIfNeeded 的方法来膨胀视图...我尝试过用我的mMap.getMyLocation()
创建一个位置,然后创建两个双打 lat
和 lng
他们are = location.getLatitude and Longitude
,我尝试使用我的位置创建一个 cameraZoomIn,但它不起作用。
private void setUpMapIfNeeded(View inflatedView)
if (mMap == null)
mMap = ((MapView) inflatedView.findViewById(R.id.mapView)).getMap();
mMap.getUiSettings().setMyLocationButtonEnabled(true);
mMap.setMyLocationEnabled(true);
Location location = mMap.getMyLocation();
double lat = location.getLatitude();
double lng = location.getLongitude();
CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(location, 10);
mMap.animateCamera(cameraUpdate);
if (mMap != null)
setUpMap();
setUpMap 方法
private void setUpMap()
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("PewPew"));
// latitude and longitude
double latitude = 17.385044;
double longitude = 78.486671;
// create marker
MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Pew Pew");
// Changing marker icon
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));
// adding marker
mMap.addMarker(marker);
希望你能帮助你解决这个问题。
谢谢。
【问题讨论】:
您是否尝试打印您的 lat 和 lng 并检查它们是否分配了正确的值?我也不确定 setUpMap(); 方法是什么做...? @Berťák 在这种方法中,我正在创建标记等...在我的地图上出现了我实际所在的蓝色圆圈... 【参考方案1】:GoogleMap.getLocation 已弃用,您应该使用位置服务:
LocationManager mng = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mng.getLastKnownLocation(mng.getBestProvider(new Criteria(), false));
double lat = location.getLatitude();
double lon = location.getLongitude();
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lon), 10);
mMap.animateCamera(cameraUpdate);
【讨论】:
@JoanColmenero 尝试:getActivity().getSystemService()
如果您的代码在片段中。【参考方案2】:
这是我缩放的方式
LatLng a = new LatLng(gps.getLatitude(), gps.getLongitude());
map.animateCamera(CameraUpdateFactory.newLatLngZoom(a, 10));
希望对你有帮助。
【讨论】:
什么是gps.getLatitude?你能解释一下你的代码吗? 啊,对不起,gps 是我自己的课程,就像 location.getLatitude();但我看到你已经处理了这个问题。以上是关于将相机重定向到当前位置 Google Maps API v2的主要内容,如果未能解决你的问题,请参考以下文章
Google Maps API:获取当前位置 iOS 的坐标
Flutter 中的 Google Maps 相机位置更新问题