0

HTTPS を使用するカスタム タイル URL で Nutiteq SDK を試しましたが、うまくいきませんでした。Nutiteq Maps SDK は HTTPS をサポートしていますか?

4

1 に答える 1

1

Nutiteq Maps SDK は、クロスプラットフォーム API レベルで HTTPS を内部的にサポートしていません。正確には、Windows Phone API バージョンのみがサポートされており、他のプラットフォーム (Android、iOS、Xamarin) はサポートされていません。他のプラットフォームでは、カスタム DataSource を記述する必要があります。既存の HTTPTileDataSource に基づいている場合は、非常に簡単です。public TileData loadTile(MapTile tile)Java または ObjC API レベルで HTTP を実行するカスタム コードでメソッドをオーバーライドするだけでよく、これらは HTTPS を自動的にサポートします。

これは 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 ヘッダーの追加、カスタム キャッシュの制御など、他のカスタム ロジックを使用することもできます。

于 2015-06-16T15:12:28.033 に答える