Как нарисовать линию на карте по заданным координатам?
-
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));