39. Vega の利用イメージ
const exampleVega = {
"width": 733,
"height": 530,
"data": [
{
"name": "heatmap_query",
"sql": "SELECT lon as x, lat as y,
SUM(amount) as cnt
FROM contributions
WHERE (lon between -124.39 AND -66.94) AND
(lat between 20.61 AND 52.93) AND
amount > 0 AND
recipient_party = 'R'
GROUP BY x, y"
}
],
"scales": [...
今、GISが鬼熱いっ!
var vegaOptions = {}
var connector = new MapdCon()
.protocol("http")
.host("192.168.0.xxx”)
.dbName("mapd")
.user("mapd")
.password("******")
.connect(function(error, con) {
con.renderVega(1, JSON.stringify(exampleVega), vegaOptions,
function(error, result) {
if (error) { … }
else {
var blobUrl = `data:image/png;base64,${result.image}`
var body = document.querySelector('body')
var vegaImg = new Image()
vegaImg.src = blobUrl
body.append(vegaImg)
}
});
});
39
44. SELECT 処理時間
まずは件数。
select count(*) from flights where
st_x(origin_point) between 20 and 50 and
st_y(origin_point) between -160 and -80;
今、GISが鬼熱いっ!
PostGIS
44
45. 集計演算 SELECT AVG()
集計してみる。
select avg(遅延時間) from flights where
st_x(origin_point) between 20 and 50 and
st_y(origin_point) between -160 and -80;
今、GISが鬼熱いっ!
PostGIS
45
46. 集計演算 SELECT ... GROUP BY
GROUP BY してみる。
select uniquecarrier, count(*), avg(遅延時間) from flights where
st_x(origin_point) between 20 and 50 and
st_y(origin_point) between -160 and -80 group by uniquecarrier;
今、GISが鬼熱いっ!
PostGIS
46