「○○危険地帯」で任意の半径(メートル)で安全地帯を定義する

  • 0
    Like
  • 0
    Comment

    LODチャレンジJapan2013データ提供パートナー賞受賞作品「トイレ危険地帯」 を改造してSPARQLエンドポイントの検索結果を利用できるようにした「○○危険地帯」というWebアプリがあります。

    このWebアプリは、ある施設が「存在しない地域」(=危険地帯)を可視化するアプリで、危険地帯の範囲はアプリが自動的に計算します。例えば、

    http://uedayou.github.io/dangerzone-sparql/

    上記のようになります。

    ここでは、危険地域の範囲を手動で設定する方法を解説します。
    危険地帯の範囲は、ある施設が一定の距離に存在しない地域になりますので、ある施設からの一定の距離(=安全地帯)をメートルで指定する必要があります。
    安全地帯を手動で指定するには、

    https://github.com/uedayou/dangerzone-sparql/blob/master/js/app.js

    の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/

    コード:http://uedayou.net/dangerzone-sparql-2000/js/app.js