android如何在谷歌地图上画一个圆圈

时间:2015-07-09 11:18:25

标签: android

我正在为我的Android应用程序使用新的API(Google Map API V2),我已经完成了创建地图并添加标记,现在我的任务是手动创建一个围绕任何标记的圆圈,我也想要为用户提供一个功能,他可以相应地增加该圆的半径,为此我给了一个条,当用户增加该条时,圆的半径将增加,反之亦然。

如果有人知道如何使用Google Map API V2,请提供帮助,

4 个答案:

答案 0 :(得分:17)

试试这段代码

protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tag_map);

     // Drawing circle on the map
           drawCircle(new LatLng(Latitude, Longitude));
    }

        private void drawCircle(LatLng point){

                // Instantiating CircleOptions to draw a circle around the marker
                CircleOptions circleOptions = new CircleOptions();

                // Specifying the center of the circle
                circleOptions.center(point);

                // Radius of the circle
                circleOptions.radius(20);

                // Border color of the circle
                circleOptions.strokeColor(Color.BLACK);

                // Fill color of the circle
                circleOptions.fillColor(0x30ff0000);

                // Border width of the circle
                circleOptions.strokeWidth(2);

                // Adding the circle to the GoogleMap
                googleMap.addCircle(circleOptions);

            }

答案 1 :(得分:9)

onMapReady()方法中添加以下代码:

Circle circle = map.addCircle(new CircleOptions()
     .center(new LatLng(latitude, longitude))
     .radius(10000)
     .strokeColor(Color.RED)
     .fillColor(Color.BLUE));

其中mapGoogleMap类的对象。

答案 2 :(得分:0)

             CircleOptions circleOptions = new CircleOptions();
                circleOptions.center(new LatLng(location.getLatitude(),location.getLongitude()));
                circleOptions.radius(700);
                circleOptions.fillColor(Color.TRANSPARENT);
                circleOptions.strokeWidth(6);
                mMap.addCircle(circleOptions);
            geocoder = new Geocoder(MapsActivity.this, getDefault());
            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(new LatLng(location.getLatitude(), location.getLongitude()));
            mMap.addMarker(markerOptions.title(String.valueOf(location)));

尝试

答案 3 :(得分:0)

Google地图可以为圆使用半透明颜色。

private var circle: Circle? = null

private fun drawCircle(latitude: Double, longitude: Double, radius: Double) {
    val circleOptions = CircleOptions()
        .center(LatLng(latitude, longitude))
        .radius(radius)
        .strokeWidth(1.0f)
        .strokeColor(ContextCompat.getColor(context!!, R.color.color1))
        .fillColor(ContextCompat.getColor(context!!, R.color.color2))
    circle?.remove() // Remove old circle.
    circle = googleMap?.addCircle(circleOptions) // Draw new circle.
}