我尝试了Nutiteq SDK的自定义磁贴URL,它使用HTTPS,但它不起作用。Nutiteq Maps SDK是否支持HTTPS?
发布于 2015-06-16 23:12:28
Nutiteq Maps SDK内部不支持跨平台API级别的HTTPS。确切地说,只有Windows Phone API版本支持它,但不支持其他平台(安卓、iOS、Xamarin)。对于其他平台,您需要编写自定义DataSource。如果您将它建立在现有HTTPTileDataSource的基础上,那么它非常简单。您只需要使用自定义代码覆盖public TileData loadTile(MapTile tile)方法,这些代码在Java或HTTPS级别执行HTTPS,这些代码会自动支持ObjC。
下面是Java的最小类。在.NET/Xamarin和iOS中,它非常相似:
public class MyHttpTileDataSource extends HTTPTileDataSource {
public MyHttpTileDataSource(int minZoom, int maxZoom, String baseURL) {
super(minZoom, maxZoom, baseURL);
}
public TileData loadTile(MapTile tile) {
String urlString = super.buildTileUrl(tile);
Log.debug("requesting tile: "+urlString);
Bitmap bmp = null;
try {
URL url = new URL(urlString);
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
return null;
}
return new TileData(BitmapUtils.createBitmapFromAndroidBitmap(bmp).compressToInternal());
}
}使用相同的方法,您还可以使用其他自定义逻辑,例如添加用于身份验证的HTTP头、控制自定义缓存等。
https://stackoverflow.com/questions/30871571
复制相似问题