无法解析圆心的mLatLng

时间:2015-12-02 09:27:57

标签: android google-maps

在我的Android地图中,我只是绘制一个圆圈,我需要将当前位置作为圆心,当更改设备的位置时,必须重新更换圆圈并在圆圈内再次加载标记。

这是我的代码。

首先,我简单地对5个地方进行了硬编码。

LatLng POINTA = new LatLng(6.9192, 79.8950);
LatLng POINTB = new LatLng(6.9006, 79.8533);
LatLng POINTC = new LatLng(6.9147, 79.8778);
LatLng POINTD = new LatLng(6.9036, 79.9547);
LatLng POINTE = new LatLng(6.8397, 79.8758);

然后这是我绘制圆圈并加载标记的地方。

public static boolean isMyLocationSet = false; // Get Current location ass default location

@Override
public void onMyLocationChange(Location location) {

    isMyLocationSet=false; // Get Current location ass default location

    Location target = new Location("target");

    for(LatLng point : new LatLng[]{POINTA,POINTB,POINTC,POINTD,POINTE}){

        mMap.setMyLocationEnabled(true);
        mMap.setOnMyLocationChangeListener(this);

        LocationManager mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        String provider = mLocationManager.getBestProvider(criteria, true);
        Location currentLocation = mLocationManager.getLastKnownLocation(provider);

        double latitude = location.getLatitude();

        double longitude = location.getLongitude();

        LatLng mLatLng = new LatLng(latitude, longitude);

        Circle circle = mMap.addCircle(new CircleOptions()
                .center(new LatLng(mLatLng))
                .radius(10000)
                .strokeColor(Color.BLUE)
                .strokeWidth(2));


        target.setLatitude(point.latitude);
        target.setLongitude(point.longitude);

        Marker marker = mMap.addMarker(new MarkerOptions()
                .position(new LatLng(point.latitude, point.longitude))
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));

        float[] distance = new float[2];

        if(location.distanceTo(target) <  10000) {
            marker.setVisible(true);
        }

        else {
            marker.remove();
        }


    }

}

这里我无法解决center(new LatLng(mLatLng))中的mLatLng

  

Latlng中的Latlng(double,double)无法应用于(com.google.andrdoid.gms.maps.model.Latlng)

我应该为此做些什么,我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

将LatLng对象放入创建新的LatLng类对象

所以给出了这种类型的消息。请仅使用对象作为参数

LatLng mLatLng = new LatLng(latitude, longitude);

Circle circle = mMap.addCircle(new CircleOptions()
            .center(mLatLng)
            .radius(10000)
            .strokeColor(Color.BLUE)
            .strokeWidth(2));

OR

Circle circle = mMap.addCircle(new CircleOptions()
            .center(new LatLng(latitude, longitude))
            .radius(10000)
            .strokeColor(Color.BLUE)
            .strokeWidth(2));