【发布时间】:2017-08-09 00:08:21
【问题描述】:
当我点击地图上的某处时,应用程序会在当前位置和目的地之间绘制折线(点击)。我希望目标标记一直在自己点击(每隔几秒),所以在用户移动时,新的折线正在绘制(更新最后一条)。
我尝试了处理程序和一堆东西,但没有找到解决方案。
任何答案将不胜感激。
private ArrayList<LatLng> mClickedPoints;
/** Setting onclick listener for the map */
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
/**
* Clearing map if user clicks on map more then one time.
* Reseting View widgets and arrays, adding points of interests
*/
if (mClickedPoints.size() > 1) {
mMap.clear();
mClickedPoints.clear();
mClickedPoints = new ArrayList<>();
}
/** Adding current location to the ArrayList */
mClickedPoints.add(start);
Log.i("current location", start.toString());
MarkerOptions options = new MarkerOptions();
options.position(start);
/** Destination click */
mClickedPoints.add(point);
/** Setting the position of the marker */
options.position(point);
/** Checks if start and end locations are captured */
if (mClickedPoints.size() >= 2) {
orig = mClickedPoints.get(0);
dest = mClickedPoints.get(1);
}
mMap.addMarker(options);
request_directions_and_get_response();
}
});
onLocationChanged() 覆盖:
@Override
public void onLocationChanged(Location location) {
mLastLocation = location;
if (mCurrLocationMarker != null) {
mCurrLocationMarker.remove();
}
/** Setting current location marker */
start = new LatLng(location.getLatitude(),location.getLongitude());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(start);
markerOptions.title("Current Location");
markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
mCurrLocationMarker = mMap.addMarker(markerOptions);
}
【问题讨论】:
-
只需将类似的代码放在
onLocationChanged()覆盖中,以便在用户位置更改时更新它。 -
@Daniel 我已经这样做了,位置正在移动,效果很好。当我单击地图时,会绘制折线并且蓝点在其上移动。我想一直更新折线。你知道有什么解决办法
-
显示您的 onLocationChanged 代码
标签: java android google-maps marker