如何在Android中绘制类似于谷歌地图应用的折线?

时间:2016-06-08 05:52:43

标签: android google-maps google-polyline

我们将在地图上绘制的折线与谷歌地图应用的折线不相似。它给人一种漂亮的三维感觉,我们可以绘制类似于折线的折线吗?是否可以使用9-绘图补丁图片?。有人请帮忙吗?。

1 个答案:

答案 0 :(得分:0)

您好,这对您有所帮助,它帮助了我。

首先从Google开发者帐户制作google api服务器密钥,然后为google方向添加依赖项。

compile 'com.akexorcist:googledirectionlibrary:1.0.4'

然后检查LatLongs之间的可行和最短路径。

使用此代码检查路线是否可用。

GoogleDirection.withServerKey(getResources().getString(R.string.SERVER_KEY))
                    .from(SourceLatlng)
                    .to(DestinationLatlng)
                    .execute(new DirectionCallback() {
                        @Override
                        public void onDirectionSuccess(Direction direction, String message) {
                            if (direction.isOK()) {
                                DrawRoute(direction, message,SourceLatlng,DestinationLatlng);
                            } else {
                                //selectedRawLine = ERROR;
                            }

                        }

                        @Override
                        public void onDirectionFailure(Throwable t) {
                            t.printStackTrace();
                        }
                    });

使用这个我们可以发现路线是否可行

private void DrawRoute(Direction direction, String message,LatLng sourceLatlng,LatLng DestinationLng) {

        for (Route route : direction.getRouteList()) {
            PolylineOptions polyoptions = new PolylineOptions();
            polyoptions.color(getResources().getColor(R.color.blackcolor));
            polyoptions.width(5);
            polyoptions.addAll(route.getOverviewPolyline().getPointList());
            poly = googleMap.addPolyline(polyoptions);
            poly.setClickable(true);

        }
        LatLngBounds.Builder latLngBuilder = new LatLngBounds.Builder();
        if(sourceLatlng!=null)
        latLngBuilder.include(sourceLatlng);
        if(DestinationLng!=null)
        latLngBuilder.include(DestinationLng);

        try {
            LatLngBounds bounds = latLngBuilder.build();
            CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds,
                    UiHelper.dpToPixel(getActivity(), 135));
            googleMap.animateCamera(cu);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

使用此代码,我们在两个latLongs之间制作折线...