2016-06-08 3 views
0

Полилиния, которую мы будем нарисовать на карте, не похожа на полилинию приложения карты Google. Это дает приятное ощущение 3d, можно ли рисовать полилинию, подобную этой полилинии?. Можно ли рисовать с помощью 9-патча изображения?. Кто-нибудь, пожалуйста, помогите ?.Как нарисовать полилинию, похожую на приложение google map в android?

+0

нет, это не представляется возможным. Действительно, GoogleMaps не использует игровые сервисы api, как мы, но у них есть много методов. –

ответ

0

Здравствуйте, это поможет вам, это помогло мне.

Сначала введите ключ сервера google api из учетной записи разработчика Google, а затем добавьте зависимость для направления 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 ...

+0

Я пробовал поли линию, но поли линия google map (System App) отличается от этой полилинии –

+0

, вы можете изменить цвет поли линии так же, как и полилинии карты, и изменить ширину полилинии с помощью этого. –

+0

polyoptions.width (5); –