我的MapsActivity
中有onLocationChanged()
方法,每次用户位置移动时都会绘制多段线,但我希望它由Start
按钮触发,所以它不会每次在地图上绘制,当绘制多段线上结束时,用户单击Stop
按钮。然后运行CCD_ 5方法绘制折线。当用户再次点击开始按钮时,它会.clear();
地图,然后重新开始,我已经管理了绘制多段线的部分,distance Between((部分,但我不知道如何通过启动和停止按钮触发onLocationChanged((方法内的绘制多段曲线,我该怎么做?
@Override
public void onLocationChanged(Location location) {
if (mGoogleApiClient == null) {
buildGoogleApiClient();
}
latLng = new LatLng(location.getLatitude(), location.getLongitude());
latA = latLng.latitude;
longA = latLng.longitude;
tvlattitude.setText(""+latA);
tvlongitude.setText(""+longA);
listPointsB.add(latLng);
pOptions = new PolylineOptions()
.width(5)
.color(Color.BLUE)
.geodesic(true);
for (int z = 0; z < listPointsB.size(); z++) {
LatLng point = listPointsB.get(z);
pOptions.add(point);
}
line = mMap.addPolyline(pOptions);
// Toast.makeText(this, "Location Changed",Toast.LENGTH_SHORT).show();
}
这是按钮
Button bStart = (Button)findViewById(R.id.btStart);
bStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
Button bStop = (Button) findViewById(R.id.btStop);
bStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//
}
});
尝试使用FusedLocationProviderClient