Как прикрепить пользовательскую карту на MapView? [Android]
У меня есть вопрос о Mapview. У меня есть изображение, которое представляет собой карту небольшой площади (например: http://goo.gl/tKQM6).
Могу ли я использовать это изображение в mapview? если это возможно, могу ли я использовать наложения и другие действия просмотра карты на нем? Я могу добавить разные изображения для разных уровней масштабирования.
Если нет способа сделать это с помощью Google Maps, есть ли другой способ сделать это?
Благодарю.
1 ответ
Я успешно нарисовал круг на карте. Я перезаписываю для этого метод рисования ItemizedOverlay и выполняю в нем некоторые операции холста и рисования. Как это:
public class DepartureItemizdOverlay extends ItemizedOverlay {
.......
......
public boolean draw(Canvas canvas, MapView mapView, boolean shadow,
long when) {
Paint paint;
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAntiAlias(true);
float strockWidth = Departure.gpsAccuracy / ACCURACY_width_constant;
if(strockWidth >= MAX_STROCK_WIDTH)
strockWidth = MAX_STROCK_WIDTH;
Projection projection = mapView.getProjection();
Point point = new Point();
projection.toPixels(mOverlays.get(GPS_DETECTED_GP_INDEX).getPoint(), point);
float circleRadius = (float) (projection.metersToEquatorPixels
(Departure.MAX_DISTANCE_gps_dep) * (1/
Math.cos(Math.toRadians(mOverlays.
get(GPS_DETECTED_GP_INDEX).getPoint().
getLatitudeE6()/1E6))));
paint.setStyle(Style.FILL);
paint.setAlpha(30);
canvas.drawCircle(point.x, point.y, circleRadius, paint);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(MAX_STROCK_WIDTH);
paint.setAlpha(100);
canvas.drawCircle(point.x, point.y, circleRadius, paint);
mapView.postInvalidate();
return super.draw(canvas, mapView, shadow, when);
}
.....
}