0

我需要在可滚动和可缩放的网格上显示一组标记的标记。类似于 Google Maps Android API,但没有实际的地图图像,只有 UI。

我正在使用禁用地图的谷歌地图,但它有一个问题 --- 它不能放大到 5 米以下,而我可能需要缩小到毫米级(标记可能很近)。Yandex Maps 也有类似的限制 --- 即使我不使用它,我也无法放大地图分辨率。

有什么建议么?

4

1 回答 1

2

我无法共享我的自定义渲染器的代码,所以这里是通用架构:

  1. 具有平移缩放属性以及MapLayers列表的MapView(扩展View)组件

  2. 具有onClick渲染方法的MapLayer抽象类。这个类有两个子类:

    2.1。一个GridLayer类,它的渲染方法根据MapView平移缩放绘制网格

    2.2. 一个MarkerLayer类,用于存储标记并呈现它们。

  3. 标记存储纬度经度以及属性的 HashMap (例如颜色、id 等)

  4. 要将Marker纬度经度映射到MapView的 x 和 y 我使用实例IProjector接口,目前 - Mercator Projector with formulas from Wikipedia

  5. 渲染MarkerMarkerLayer使用MarkerRenderer抽象类的实例。我有两个MarkerRenderersSimpleMarkerRenderer绘制圆圈(它们的笔触和填充颜色取自Marker属性)和ImageMarkerRenderer绘制图像(图像 id 取自Marker属性

于 2013-08-03T05:42:10.790 回答