我需要在Android Google mapV2中创建自定义路由。
如下图所示。
截至目前,我可以通过json请求获取两个latlng之间的路由,但是没有找到任何修改它的方法。
答案 0 :(得分:1)
您可以这样做:首先将options.draggable(true);
设置为添加Marker
,如
MarkerOptions options = new MarkerOptions();
// Setting the position of the marker
options.position(point);
options.draggable(true);
if(markerPoints.size()==1){
options.title("Marker1");
options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
}else if(markerPoints.size()==2){
options.title("Marker2");
options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
}
// Add new marker to the Google Map Android API V2
map.addMarker(options);
现在,将setOnMarkerDragListener(new OnMarkerDragListener(){...}
实施到您的Activity
中:
map.setOnMarkerDragListener(new OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker arg0) {
// TODO Auto-generated method stub
}
@Override
public void onMarkerDragEnd(Marker marker) {
// TODO Auto-generated method stub
LatLng dragPosition = marker.getPosition();
double dragLat = dragPosition.latitude;
double dragLong = dragPosition.longitude;
Toast.makeText(Main3.this, "After onMarkerDragEnd position: "+ dragLat+" "+dragLong,Toast.LENGTH_LONG).show();
}
@Override
public void onMarkerDrag(Marker arg0) {
// TODO Auto-generated method stub
}
});
}
在onMarkerDragEnd(....)
中,您可以通过它的标题识别Marker
并在新点和旧点之间再次绘制路线。
答案 1 :(得分:1)
目前,API V2中的Android无法使用此功能。您可以在使用API V3的浏览器网站中执行此操作。在Android中,当您尝试获取两个Lat Long之间的路由时,您将需要调用Web服务。同样,您需要为每个此类路由调用Web服务,这不是一种有效的方法。这会降低您的应用程序的性能。
希望这会对你有所帮助。
答案 2 :(得分:0)
可以在桌面上的Google地图应用程序中间更改导航路线。将箭头放在需要转弯的交叉点上,然后单击并沿着所需的新路线拖动白色圆圈,直到它加入早期作为转移。新路线已创建。
突出显示的请求显示在左侧 - "你想把它发送到你的手机吗?"单击它并选择电子邮件。地图会发送到您的Android手机电子邮件。打开它 。地图就在那里,它可以导航!!