谷歌地图API V2绘制当前位置周围的圆形

3

我目前正在一个安卓项目中使用Google Maps API V2,我需要能够在用户当前位置周围绘制一个圆圈,并显示标记点,标记点是用户当前位置周围的兴趣点。

我无法获取表示用户当前位置的小标记,以便我可以在其周围画圆。

这是我目前的代码。

//Set up map and display users current position.
    MapFragment mapFragment = (MapFragment) getFragmentManager()
            .findFragmentById(R.id.nearbyMapSearch);
    mapFragment.getMapAsync(this);

    final GoogleMap map = (((MapFragment) getFragmentManager().findFragmentById(R.id.nearbyMapSearch)).getMap());
    map.setMyLocationEnabled(true);

    //zoom to users location
    GeoLocationHandler geoHandler = new GeoLocationHandler(getActivity().getApplicationContext());
    Log.i("Search Fragment", "" + geoHandler.getCurrentLatitude() + " , " + geoHandler.getCurrentLongitude());
    LatLng loc = new LatLng(geoHandler.getCurrentLatitude(), geoHandler.getCurrentLongitude());

    //Begin animating camera.
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(
            new LatLng(loc.latitude, loc.longitude), 13));

    //Instantiate new Camera position
    CameraPosition cameraPosition = new CameraPosition.Builder()
            .target(new LatLng(loc.latitude, loc.longitude))
            .zoom(3)
            .bearing(0)
            .tilt(0)
            .build();
    map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

非常感谢您的帮助。

如果您对此有任何帮助将不胜感激。

1个回答

7

显然,我盯着屏幕看了太久,才没有意识到它是如此简单。获取位置时出现了空指针错误,但我认为那是一个完全不同的错误。 - Marc Davies
是的,你的代码有一个不同的问题。这是因为在地图准备好之前你不能使用地图。所有与地图初始化相关的内容都必须移动到你的onMapReady方法中。 - Gabriel
所以除了片段部分之外,所有内容都需要放在OnMapReady()中吗? - Marc Davies
在你的代码中,是的。GoogleMap对象通过onMapReady参数传递给你。因此,在onMapReady回调中,你已经准备好使用地图对象(启用用户位置、动画相机等)。 - Gabriel
好的,谢谢你为我解答了这个问题,这是我第一次使用 V2 Api。 - Marc Davies
抱歉直到现在才接受你的答案,这周很忙。你的代码有效,谢谢 :) - Marc Davies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接