在我的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)
我应该为此做些什么,我的代码有什么问题吗?
答案 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));