LODチャレンジJapan2013データ提供パートナー賞受賞作品「トイレ危険地帯」 を改造してSPARQLエンドポイントの検索結果を利用できるようにした「○○危険地帯」というWebアプリがあります。
このWebアプリは、ある施設が「存在しない地域」(=危険地帯)を可視化するアプリで、危険地帯の範囲はアプリが自動的に計算します。例えば、
上記のようになります。
ここでは、危険地域の範囲を手動で設定する方法を解説します。
危険地帯の範囲は、ある施設が一定の距離に存在しない地域になりますので、ある施設からの一定の距離(=安全地帯)をメートルで指定する必要があります。
安全地帯を手動で指定するには、
の114行目に
var metersPerPx = (Math.cos(initial_latitude * Math.PI/180) * 2 * Math.PI * 6378137) / (256 * Math.pow(2,map.getZoom()));
var aveDistancePx = 500*2/metersPerPx;
を挿入してください。
上のコードのvar aveDistancePx = 500*2/metersPerPx;
の500
は
安全地帯(赤い円が表示されない部分)の半径(メートル)を表します。
この値を変更することで、危険地帯を表す赤い円の大きさを変更することができます。
以下は、半径500m、1000m(1km)、2000m(2km) を指定したときの実行例です。
・半径 500m
http://uedayou.net/dangerzone-sparql-500/
コード:http://uedayou.net/dangerzone-sparql-500/js/app.js
・半径 1000m(1km)
http://uedayou.net/dangerzone-sparql-1000/
コード:http://uedayou.net/dangerzone-sparql-1000/js/app.js
・半径 2000m(2km)
http://uedayou.net/dangerzone-sparql-2000/