我已经实现了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);
此标记应位于用户的位置,默认情况下地图应居中。 只要我不缩放,这种方法效果很好:
但是当我缩小时,标记会移动:
距离随zoomlevel增加:
知道这是由什么造成的吗?自定义标记是否有任何限制/指导?
注意:使用默认标记时不会发生这种情况。
答案 0 :(得分:4)
发现问题:Hotspot
似乎默认Hotspot
是Bottom Center
,在我的情况下,Center
是正确的。我的标记的底部中心位于正确的位置,它看起来并不像它。
newItem.setMarkerHotspot(HotspotPlace.CENTER);
修复了它
这基本上是我的标记:
___________
| _ |
| ( ) |
| V |
| |
|___________|