明月笑刀無情
2023-05-11 14:37:58
我正在嘗試使用 Vega-Lite 繪制地圖。然而,作為一個學生,才剛剛開始自學。有幾件事我很困惑。不知道JavaScript 和 Vega-Lite 的關系?我們可以使用 Vega-Lite 來繪制地圖。那么,為了繪制地圖,JavaScript 扮演了什么角色呢?(即以“JavaScript”格式和“Vega-Lite”格式編寫代碼有什么區(qū)別?“Vega-Lite”是一種新的編程語言嗎?)(即我試圖搜索如何編寫 JavaScript 編碼,結果看起來很不同于為 Vega-Lite 提供的那個寺廟)我不知道如何將 Vega-Lite 代碼與 HTML 代碼結合起來(以便放入網頁)。我試圖在 Vega-Lite 網站 ( https://vega.github.io/vega-lite/tutorials/getting_started.html )上查看神廟。但是,如果我想發(fā)布另一個 vega-Lite 而不是給定的示例,我不明白應該更改和組合現有代碼的哪一部分(因為他們沒有太多評論,我才剛剛開始學習它。我這里寫的下面的代碼在網頁上沒有給我任何'Map',不知哪里出錯了?# Codes I tried to combine with HTML (This is just a purely Vega-Lite code on its website)<!DOCTYPE html><html> <head> <title>Vega-Lite Bar Chart</title> <meta charset="utf-8" /> <script src="https://cdn.jsdelivr.net/npm/vega@5.16.1"></script> <script src="https://cdn.jsdelivr.net/npm/vega-lite@4.16.8"></script> <script src="https://cdn.jsdelivr.net/npm/vega-embed@6.12.2"></script> <style media="screen"> /* Add space between Vega-Embed links */ .vega-actions a { margin-right: 5px; } </style> </head> <body> <h1>Template for Embedding Vega-Lite Visualization</h1> <!-- Container for the visualization --> <div id="vis"></div> <script> // Assign the specification to a local variable vlSpec. var vlSpec = { "$schema": "https://vega.github.io/schema/vega-lite/v4.json", "width": 500, "height": 300, "data": {"url": "data/airports.csv"}, "projection": {"type": "albersUsa"}, "mark": "point", "encoding": { "longitude": {"field": "longitude", "type": "quantitative"}, "latitude": {"field": "latitude", "type": "quantitative"}, "size": {"value": 10} }, "config": {"view": {"stroke": "transparent"}} };GeoJSON、TopoJSON 和 excel 文件之間有什么關系? Vega-Lite 支持 TopoJSON。我們還說我們可以使用“excel/csv 文件”作為數據域。那為什么還需要將GeoJSON轉為TopoJSON并放入HTML中呢?他們在這里扮演什么角色?如果我的數據集已經包含“經度”和“緯度”以繪制地圖,我可以避免這一步嗎?(即 GeoJSON、TopoJSON 只是另一種類似于 excel 的數據集嗎?)
1 回答

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
按順序回答你的問題:
不知道JavaScript和Vega-Lite有什么關系?
Vega-Lite 是兩件事:一種通過 JSON 指定圖表的語法,以及一組 javascript 庫來攝取此 JSON 并呈現圖表。
我不知道如何將 Vega-Lite 代碼與 HTML 代碼結合起來(以便放入網頁)。
將 Vega-Lite 圖表放在網頁上需要將 vega-lite 圖表規(guī)范(您稱之為 Vega-Lite 代碼)傳遞給vega-embed?javascript 庫(通過 javascript 發(fā)生,通常在 HTML 頁面中)。您的示例是正確的,只是它引用了可能不存在的本地數據:
"data":?{"url":?"data/airports.csv"},
將其更改為完整的 vega-datasets URL,圖表將呈現在頁面上:
"data":?{"url":?"https://vega.github.io/vega-datasets/data/airports.csv"}
GeoJSON、TopoJSON 和 excel 文件之間有什么關系?
這些都是表示數據的不同格式。Vega-Lite 支持 TopoJSON 來指定地理邊界;如果您有其他格式的地理數據,則必須將其轉換為 TopoJSON 才能與 Vega-Lite 一起使用。
請注意,只有地圖邊界需要 TopoJSON。如果您有包含緯度和經度列的 CSV 或 JSON 數據集,則可以將它們顯示在地圖背景上,而無需轉換為其他格式。
添加回答
舉報
0/150
提交
取消