Как нарисовать линию на карте Просмотр данных координат? - PullRequest
5 голосов
/ 21 декабря 2009

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

AFAIK, на айфоне можно.

Пожалуйста, сообщите.

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

Ответы [ 2 ]

21 голосов
/ 21 декабря 2009

Для использования MapView ваша активность должна расширяться MapActivity .

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

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

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

0 голосов
/ 14 декабря 2015

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

    //...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));
...