我试图在android.support.v4.app.Fragment中使用OSMdroid的离线模式 . 我的瓷砖是由MOBAC使用围绕地球坐标0,0的“OSMdroid Zip”格式下载的(它只是海洋,但我只想要一些东西作为开头出现) .
我的zip文件位于/sdcard/osmdroid/MapquestOSM.zip,并包含文件夹MapQuest,其中包含自己在子文件夹中所有瓷砖的数字作为名称,从缩放11到缩放16.瓷砖是png文件并具有扩展名“png格式” . 请注意,/ sdcard // osmdroid文件夹仅包含我的zip文件 .
我的问题是我只看到一个空的 Map ,这是一个空的灰色网格 .
public class ContactMapFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.map_fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
MapView map = (MapView) getActivity().findViewById(R.id.mapview);
map.setBuiltInZoomControls(true);
map.getController().setZoom(11);
map.getController().setCenter(new GeoPoint(0,0));
map.setClickable(true);
map.setUseDataConnection(false);
map.setMaxZoomLevel(16);
map.setMinZoomLevel(11);
map.setTileSource(new XYTileSource("MapQuest",
ResourceProxy.string.offline_mode, 11, 16, 256, ".jpg", new String[] {
"http://otile1.mqcdn.com/tiles/1.0.0/map/",
"http://otile2.mqcdn.com/tiles/1.0.0/map/",
"http://otile3.mqcdn.com/tiles/1.0.0/map/",
"http://otile4.mqcdn.com/tiles/1.0.0/map/"}));
}
}
使用osmdroid-android-4.2和slf4j-api-1.7.10权限是:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
所以我有两个问题:为什么没有显示? XYTileSource中应该指向的URL是什么(我在教程中找到了这些URL)?
1 回答
这是我最终使用的解决方案,它正在运行 . 如果我记得很清楚,你不必关心zip文件名,虽然我不确定它是否属实 .
zip文件中包含以.png格式存储的切片 .
希望它会有所帮助 .