要使用 Osmdroid 加载在线地图,可以使用 TileSourceFactory 类中的方法来定义自定义的 TileSource,并将其设置为 MapView 的 TileProvider。具体代码如下:\n\njava\nimport org.osmdroid.config.Configuration;\nimport org.osmdroid.tileprovider.tilesource.OnlineTileSourceBase;\nimport org.osmdroid.tileprovider.tilesource.TileSourceFactory;\nimport org.osmdroid.views.MapView;\n\npublic class MainActivity extends AppCompatActivity {\n\n private MapView mapView;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n\n Configuration.getInstance().load(getApplicationContext(), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()));\n\n mapView = findViewById(R.id.mapView);\n mapView.setTileSource(new OnlineTileSourceBase(&quot;CustomMap&quot;, 1, 18, 256, &quot;.png&quot;,\n new String[]{&quot;http://192.168.1.73:8086/maps/&quot;}) {\n @Override\n public String getTileURLString(long pMapTileIndex) {\n return getBaseUrl() + pMapTileIndex + mImageFilenameEnding;\n }\n });\n\n mapView.setUseDataConnection(true);\n mapView.setMultiTouchControls(true);\n mapView.getController().setZoom(10);\n mapView.getController().setCenter(new GeoPoint(0, 0));\n }\n}\n\n\n在上述代码中,我们首先创建了一个自定义的 TileSource,命名为"CustomMap",并指定了瓦片的最小和最大缩放级别、瓦片的大小和后缀名,以及地图的基本 URL。在 getTileURLString 方法中,我们通过拼接瓦片的 URL,将瓦片的索引和后缀名进行组合。\n\n然后,我们将创建的自定义 TileSource 设置为 MapView 的 TileProvider,然后设置其他 MapView 的相关属性,如是否使用数据连接、是否支持多点触控、初始缩放级别和中心点。\n\n最后,记得在 AndroidManifest.xml 文件中添加以下权限:\n\nxml\n<uses-permission android:name=&quot;android.permission.INTERNET&quot; />\n\n\n这样就可以加载指定 URL 的在线地图了。

Android Osmdroid 加载自定义在线地图 - 详细代码示例

原文地址: https://www.cveoy.top/t/topic/pxvy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录