[英]Java android google maps change color polyline where I was
这就是我绘制折线的方式:
List<LatLng> latLngsList = new ArrayList<>();
for (LegsItem leg : response.body().getRoutes().get(0).getLegs()) {
for (StepsItem step : leg.getSteps()) {
List<LatLng> latLngs = PolyUtil.decode(step.getGeometry());
step.setLatLngs(latLngs);
latLngsList.addAll(latLngs);
}
}
Polyline polyline1 = googleMap.addPolyline(new PolylineOptions()
.addAll(latLngsList));
我将此颜色绘制为黑色,但是当我在多段线上(在LatLtg中)时,我想将颜色更改为蓝色。 为了确定我是否正确,我使用以下方法:
mMap.setOnMyLocationChangeListener
并检查第一个未完成的点是否在2 m附近:
double dis = currentLocation.distanceTo(location);
但是它不能正常工作
您可以使用distanceBetween函数计算两个位置之间的近似距离(以米为单位),还可以计算两个位置之间最短路径的初始和最终方位。
public static boolean checkDistance(LatLng oldPosition, LatLng newPosition) {
float[] results = new float[1];
Location.distanceBetween(oldPosition.latitude, oldPosition.longitude,
newPosition.latitude, newPosition.longitude, results);
return results[0] <= 50.0;
}
在这里,我将最小距离设置为50米。 如果您当前的位置(纬线)在多义线纬线的50个斜角以内,则返回true。
在colors.xml
定义颜色值
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="blue">#0000EE</color>
</resources>
然后像这样设置颜色:
Polyline line = mMap.addPolyline(new PolylineOptions()
.addAll(list)
.color(R.color.blue));
编辑
mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
for (LatLng nLatLng : latLngsList) {
double latitude = nLatLng.latitude;
double longitude = nLatLng.longitude;
double myLat = location.getLatitude();
double myLong = location.getLongitude();
if (latitude == myLat && longitude == myLong) {
Polyline polyline1 = googleMap.addPolyline(new PolylineOptions()
.add(nLatLng)
.color(R.color.blue));
} /*else {
Polyline polyline1 = googleMap.addPolyline(new PolylineOptions()
.add(nLatLng)
.color(R.color.black));
}*/
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.