如何通过在Android Google MapV2中拖动标记来创建自定义路线

时间:2014-02-27 11:40:05

标签: android google-maps

我需要在Android Google mapV2中创建自定义路由。

如下图所示。

enter image description here

截至目前,我可以通过json请求获取两个latlng之间的路由,但是没有找到任何修改它的方法。

3 个答案:

答案 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手机电子邮件。打开它 。地图就在那里,它可以导航!!