我有一个Android应用程序,可以从URL加载切片。根据Google的代码示例,我有以下功能:
@Override
public void onMapReady(GoogleMap googleMap) {
mapView = googleMap;
mapView.setMapType(GoogleMap.MAP_TYPE_NORMAL);
LatLng baseLocation = new LatLng(37.745446, -122.459264);
mapView.addMarker(new MarkerOptions().position(baseLocation).title("Marker"));
mapView.moveCamera(CameraUpdateFactory.newLatLng(baseLocation));
mapView.moveCamera(CameraUpdateFactory.zoomTo(5));
TileProvider tileProvider = new UrlTileProvider(256, 256) {
@Override
public synchronized URL getTileUrl(int x, int y, int z) {
String formattedUrl = String.format(Locale.US, TILE_SERVER_URL, x, y, z);
URL url = null;
try {
url = new URL(formattedUrl);
Log.d("TILE_URL", url.toString());
}
catch (MalformedURLException ex) {
throw new AssertionError(ex);
}
return url;
}
};
tiles = mapView.addTileOverlay(new TileOverlayOptions().zIndex(0.0f).tileProvider(tileProvider).visible(true));
}
这已在我们的iOS版本中实现,并按预期工作。此外,我已经验证在此函数中返回到控制台的URL肯定会导致返回平铺图像。
我主要是iOS用户,需要一些见解。地图上没有瓷砖显示。我已经使用了瓷砖叠加层的zIndex而没有效果。
有人可以在这里提供一些建议吗?谢谢!
答案 0 :(得分:0)
我假设您遵循Google的TileOverlayDemoActivity example:如果是这种情况,则必须将URL格式协议从 http 更新为 https ,如下所示:
private static final String MOON_MAP_URL_FORMAT =
"https://mw1.google.com/mw-planetary/lunar/lunarmaps_v1/clem_bw/%d/%d/%d.jpg";
我花了很长时间才弄清楚,希望对您有所帮助。