Как нарисовать линию на карте по заданным координатам?

StackOverflow https://stackoverflow.com/questions/1937484

  •  20-09-2019
  •  | 
  •  

Вопрос

Как провести линию на MapView данные координаты?

AFAIK, на iPhone это возможно.

Пожалуйста, порекомендуйте.

Заранее спасибо.

Это было полезно?

Решение

Чтобы использовать КартаView твой Активность должен продлить MapActivity.

Для каждой линии, которую вы хотите нарисовать (или чего-то еще), вам нужно создать подкласс Наложение и сделайте рисунок в Overlay's onDraw() метод.После того как вы создали свой Overlay добавить это в MapView с чем-то вроде mMapView.getOverlays().add(new MyOverlay());.

Внутри вашего индивидуального Overlay ты захочешь получить Проекция с чем-то вроде Projection p = mapView.getProjection();.Из Projection вы можете преобразовать координаты GPS в координаты экрана с помощью Projection's toPixels(GeoPoint, Точка) метод, а затем просто нарисуйте переданный Холст используя обычные методы 2D-рисования Android.

Это основы...если вам нужно что-нибудь еще, просто спросите.

Другие советы

Вы можете использовать этот код, примеры координат и их использование.

    //...setting map and starting 

    ArrayList<LatLng> list = new ArrayList<>();
    list.add(new LatLng(41.020244, 29.045663));
    list.add(new LatLng(41.019904, 29.045448));
    list.add(new LatLng(41.019451, 29.044397));
    list.add(new LatLng(41.019710, 29.043474));


    PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
    for (int z = 0; z < list.size(); z++) {
        LatLng point = list.get(z);
        options.add(point);
    }
    mGoogleMap.addPolyline(options);

    CameraPosition cameraPosition;
    cameraPosition = new CameraPosition.Builder().target(new LatLng(41.020811, 29.046113)).zoom(15).build();

    mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top