我正在使用Google地图API创建应用。该应用程序在谷歌地图上绘制用户的步骤。我成功地实时绘制了用户的步骤。 按钮用于停止绘制线。所以,onClickListener中的insult方法。 这是我的代码
private GoogleMap map;
private PolylineOptions polylineOptions;
private Polyline polyline;
private LocationManager locationManager;
private myLocation mylocation = new myLocation();
private Button btn_clear, btn_start;
private ArrayList<LatLng> testArray = new ArrayList<LatLng>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
btn_start = (Button) findViewById(R.id.btn_start);
btn_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,mylocation);
return;
}
});
btn_clear = (Button) findViewById(R.id.btn_clear);
btn_clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
polyline.remove();
map.clear();
locationManager.removeUpdates(mylocation);
Intent intent = new Intent(TEST.this, WalkResult.class);
startActivity(intent);
}
});
polylineOptions = new PolylineOptions();
}
public class myLocation implements LocationListener {
@Override
public void onLocationChanged(Location location) {
LatLng spot = new LatLng(location.getLatitude(), location.getLongitude());
testArray.add(spot);
polyline = map.addPolyline(polylineOptions
.add(testArray.get(0))
.color(Color.DKGRAY));
Log.d("Insult", "testArray : " + testArray.get(0));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(spot, 17));
map.addPolyline(polylineOptions);
testArray.remove(0);
}
然而,Polyline.remove并没有删除线。我不明白为什么折线没有擦除。 所以,我使用&#39; polyline.getPoints&#39;在&#39; LocationListener&#39;找原因。这是结果。
04-04 10:10:48.885 10661-10661/kr.co.wdream D/Removing?: polyline : [lat/lng: (37.4851513,126.8986154)]
04-04 10:10:57.695 10661-10661/kr.co.wdream D/Removing?: polyline : [lat/lng: (37.4851513,126.8986154), lat/lng: (37.4851387,126.8985779)]
04-04 10:11:30.325 10661-10661/kr.co.wdream D/Removing?: polyline : [lat/lng: (37.4851513,126.8986154), lat/lng: (37.4851387,126.8985779), lat/lng: (37.4851357,126.8985547), lat/lng: (37.4851495,126.8986224)]
是不是? 我能怎么做 ?请帮帮我。
答案 0 :(得分:0)
好吧,我解决了这个问题。我认为这不是一个好的答案,但它是有效的。 我在'startActivity'之后使用'finish()'方法。当返回此活动(map活动)时,使用startActivity重新启动活动。 删除了所有折线的点数。感谢