OSMDroid - 我缩小时自定义标记移动

时间:2013-07-16 10:18:29

标签: android osmdroid

我已经实现了OSMDroid并添加了这样的自定义标记:

    mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());
    mapView.setTileSource(TileSourceFactory.MAPNIK);
    mapView.setBuiltInZoomControls(true);
    mapView.setMultiTouchControls(true);
    mapController = this.mapView.getController();
    mapController.setZoom(25);
    GeoPoint center = new GeoPoint(DataManager.glat, DataManager.glon);
    mapController.setCenter(center);
    OverlayItem newItem = new OverlayItem("Here", "SampleDescription", center);
    Drawable newMarker = this.getResources().getDrawable(R.drawable.marker);
    newItem.setMarker(newMarker);

此标记应位于用户的位置,默认情况下地图应居中。 只要我不缩放,这种方法效果很好:

Original Zoom (25)

但是当我缩小时,标记会移动:
Zoomed out a bit

距离随zoomlevel增加:
Zoomed out even further

知道这是由什么造成的吗?自定义标记是否有任何限制/指导?

注意:使用默认标记时不会发生这种情况。

1 个答案:

答案 0 :(得分:4)

发现问题:Hotspot

似乎默认HotspotBottom Center,在我的情况下,Center是正确的。我的标记的底部中心位于正确的位置,它看起来并不像它。

newItem.setMarkerHotspot(HotspotPlace.CENTER);修复了它

这基本上是我的标记:

 ___________
|     _     |
|    ( )    |
|     V     |
|           |
|___________|