2

我已经实现了 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);

该标记应位于用户的位置,并且默认情况下地图应居中。只要我不缩放,这很好用:

原始变焦 (25)

但是当我缩小时,标记会移动:
缩小了一点

距离随缩放级别增加:
进一步缩小

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

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

4

1 回答 1

5

发现问题:Hotspot

就我而言,似乎默认值Hotspot是正确的。我标记的底部中心在正确的位置,只是看起来不像。Bottom CenterCenter

newItem.setMarkerHotspot(HotspotPlace.CENTER);解决它

这基本上是我的标记:

 ___________
|     _     |
|    ( )    |
|     V     |
|           |
|___________|
于 2013-07-17T08:15:18.273 回答