這是一個很好的問題!
mbtile
是一種文件類型,可以包含光柵或矢量圖塊。想想它就像一個Adobe Illustrator .ai
文件 - 它可以包含矢量或光柵數據。柵格圖塊和矢量圖塊都可以採用mbtile
格式。
使用TileMill,您的矢量數據(shapefile,CSV等)與CartoCSS樣式相結合,並傳遞給Mapnik以生成一堆平鋪圖像。然後,你可以存儲你的瓷磚,並通過瓷磚服務器將它們提供給Web地圖。藉助Mapbox Studio Classic,您可以將數據轉換爲矢量圖塊並創建CartoCSS樣式來設置數據的樣式,但直到通過瀏覽器請求地圖時纔會創建圖像切片。最終,地圖上的輸出是相同的 - 柵格圖塊的網格。
您在TileMill中使用光柵圖塊創建的交互性通過UTFGrid發生。這是位於圖像切片下方的無形柵格圖層,並將交互添加到特定位置。交互性實際上並不與任何單獨的功能相關 - 它只與您的功能位於相同的位置。這在Mapbox Studio Classic中也是可行的,因爲地圖中的輸出也將是柵格圖塊的網格。您可以在style quickstart guide中閱讀更多關於如何在Mapbox Studio Classic中執行此操作的信息。
所以要回答你的問題,遷移到Mapbox Studio Classic就是要利用矢量圖塊。它們比光柵圖像塊小很多,並且可以隨時進行樣式設置,因此,例如,您不必存儲兩組獨立的圖像以適應視網膜屏幕。這也意味着您可以對同一個矢量數據實時應用多種樣式,這意味着您無需爲每種樣式或每次小的更改都重新生成一整套圖像。
是否可以在一個樣式項目中將這種交互添加到多個圖層?或者我應該創建多個樣式,每個樣式都帶有交互式UTFGrid,並且將它們作爲單獨的圖層添加到地圖中? – DeLac
FWIW,'mbtiles'規範(截止撰寫 - v1.2)僅支持柵格數據。但忽視規範有一個普遍的習慣。並在那裏填充矢量數據。數據通常採用壓縮Mapbox矢量圖的形式。 – Mohan