【发布时间】:2015-07-22 13:13:03
【问题描述】:
我有以下代码:
public class MainActivity extends Activity {
MapView map;
XYTileSource customTileSource;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = (MapView) findViewById(R.id.mapView);
map.setMultiTouchControls(true);
map.setMapListener(new MyMapListener());
ITileSource tileSource = TileSourceFactory.MAPNIK;
String tileUrl[] = {"https://bla_bla_bla__don't wanna show this here"};
customTileSource = new MyXYTileSource("Point", null, 8, 18, 256, ".png", tileUrl);
map.setTileSource(customTileSource);
GeoPoint startPoint = new GeoPoint(47.021461, 28.86383);
IMapController mapController = map.getController();
mapController.setCenter(startPoint);
mapController.setZoom(10);
MapEventsOverlay eventsOverlay = new MapEventsOverlay(this, new MyMapEventsListener());
map.getOverlays().add(eventsOverlay);
}
private class MyMapListener implements MapListener {
@Override
public boolean onScroll(ScrollEvent event) {
return false;
}
@Override
public boolean onZoom(ZoomEvent event) {
Log.d("atf", "Zoom level is: " + event.getZoomLevel());
return true;
}
}
private class MyMapEventsListener implements MapEventsReceiver {
@Override
public boolean singleTapConfirmedHelper(GeoPoint p) {
Log.d("atf", "Taped on long="+p.getLongitude()+" lat="+p.getLatitude());
return true;
}
@Override
public boolean longPressHelper(GeoPoint p) {
return false;
}
}
private class MyXYTileSource extends XYTileSource {
public MyXYTileSource(String aName, ResourceProxy.string aResourceId, int aZoomMinLevel, int aZoomMaxLevel, int aTileSizePixels, String aImageFilenameEnding, String[] aBaseUrl) {
super(aName, aResourceId, aZoomMinLevel, aZoomMaxLevel, aTileSizePixels, aImageFilenameEnding, aBaseUrl);
}
@Override
public String getTileURLString(MapTile aTile) {
String tileUrl = super.getTileURLString(aTile);
Log.d("atf", "Tile url String: "+tileUrl);
return tileUrl;
}
}
}
这样做的目的是使用自定义图块来显示地图。 这实际上工作正常。 除了这个代码在“Samsung galaxy Ace 3”上运行的情况。也许还有其他设备有同样的问题。
对于低于 17 的缩放级别,它不会加载自定义图块。当缩放超过 17 时,它开始加载它们。
谁能解释一下为什么?
抱歉,我忘了说明: 未加载新图块时,将加载旧图块(从默认图块源)。所以地图不是完全空白的。
【问题讨论】:
-
你能澄清一下吗?缩放 > 17 负载或缩放
-
您是否尝试过将自定义平铺源的最大缩放比例提高到更高?试试 19 或 20 看看是否有区别