package com.fieldlabel.collector.ui.map

import org.osmdroid.tileprovider.tilesource.XYTileSource

/**
 * アプリ全体で使用する地図タイルソース定義。
 *
 * 選定基準：商用利用可・再配布可・APIキー不要
 *
 * 設定キー "MAPNIK"    → [TILE_STANDARD]  CartoDB Voyager  全世界対応
 * 設定キー "TOPO"      → [TILE_GSI_STD]   国土地理院 標準地図
 * 設定キー "SATELLITE" → [TILE_GSI_AERIAL] 国土地理院 空中写真
 */

/**
 * CartoDB Voyager — 商用利用可・全世界対応
 * License: https://carto.com/legal/
 * © OpenStreetMap contributors, © CARTO
 */
val TILE_STANDARD: XYTileSource = XYTileSource(
    "CartoDB_Voyager", 0, 19, 256, ".png",
    arrayOf(
        "https://a.basemaps.cartocdn.com/rastertiles/voyager/",
        "https://b.basemaps.cartocdn.com/rastertiles/voyager/",
        "https://c.basemaps.cartocdn.com/rastertiles/voyager/",
        "https://d.basemaps.cartocdn.com/rastertiles/voyager/"
    )
)

/**
 * 国土地理院 標準地図 — 商用利用可・日本政府データ
 * https://maps.gsi.go.jp/development/ichiran.html
 * 帰属表示: 地理院タイル（国土地理院）
 */
val TILE_GSI_STD: XYTileSource = XYTileSource(
    "GSI_Std", 0, 18, 256, ".png",
    arrayOf("https://cyberjapandata.gsi.go.jp/xyz/std/")
)

/**
 * 国土地理院 シームレス空中写真 — 商用利用可
 * https://maps.gsi.go.jp/development/ichiran.html
 * 帰属表示: 地理院タイル（国土地理院）
 */
val TILE_GSI_AERIAL: XYTileSource = XYTileSource(
    "GSI_Aerial", 0, 18, 256, ".jpg",
    arrayOf("https://cyberjapandata.gsi.go.jp/xyz/seamlessphoto/")
)

/** 設定キーに対応する帰属表示文字列を返す */
fun tileAttribution(tileKey: String): String = when (tileKey) {
    "TOPO", "SATELLITE" -> "地理院タイル（国土地理院）"
    else                -> "© OpenStreetMap contributors © CARTO"
}

/** 設定キーに対応するタイルソースを返す */
fun tileSourceFor(tileKey: String) = when (tileKey) {
    "TOPO"      -> TILE_GSI_STD
    "SATELLITE" -> TILE_GSI_AERIAL
    else        -> TILE_STANDARD
}
