Japonyol » ブログ » ポリゴンの面積を算出する例

ポリゴンの面積を算出する例

公開日: 2023年5月29日

フロントエンドで演算してくれる Turf で面積を出す。
国土数値情報の湖沼データには属性として湖沼名、行政区域コード、最大水深と水面標高が記載されているが、面積は含まれていない。
仁科三湖だけ抜き出して面積を例示。これは他で調べたらすぐ分かることだが、タップないしクリックを

Multi ではない Polygon ならば何でも面積を弾き出してくれるので、用途次第では便利だと思う。値は square meters で返ってくるので、単位変換の計算式を書き込めばよい。あらかじめ計算して属性に書き込んでおくのもアリだが、その分だけデータ量は増えてしまう。Core i7 で 16 GB メモリなどの高性能端末を誰もが使っているわけではないので、軽いにこしたことはない。別のデータと紐付けて人口密度を出すなどといった使い方も含め、コンピュータに任せられる部分は丸投げするほうがメリットは大きいように思う。

var laguna = e.target;
var polygon = turf.polygon(laguna.feature.geometry.coordinates);
var area = turf.area(polygon);

なお重箱の隅をつつくのは野暮。
PCを買い替え仮想メモリを増やしたものの、重い QGIS をあらためてインストールするのもイヤなので、.shp と .dbf と .shx をまとめてオンラインのコンバータに放り込んで湖沼データを geojson に変換した。あんがい雑な描画のデータだった。

逆に、ポリゴンを描いて面積を求める場合は 面積を測定する地図 をどうぞ (これも5年前から Turf を使っている)

ところで『市立大町山岳博物館 研究紀要』第8号 (2023年3月) に「長野県北西部,仁科山地の地質と斜面崩壊」(太田勝一,高橋康) が収録されている。青木湖と中綱湖の成因について示唆に富み、勉強になる。

おぼえがき

コンピュータでテクニカルな方向へ先鋭化し過ぎると一般への普遍性を失いやすいというジレンマは常にある (重要) のだが

$abecedario = 'abcdefghijklmnopqrstuvwxyz';
$identidad = substr(str_shuffle($abecedario), 0, 8);

なぜこんなランダム文字列を作るかというと、要素名を固定しないため。
スクレイピングされるのは不愉快だから User-Agent が python ならデコピンを喰らわすが詐称もある。要素名のランダム化でログの行数が整合してきたので、いくらかは防御できているのだろうか? このドメインの話ではないが、イタチごっこをして遊んでいる。

WAFの除外設定は

<IfModule siteguard_module>
SiteGuard_User_ExcludeSig ip(xxx.xxx.xxx.xxx)
</IfModule>

自分のIPを入れれば済む話だった。

ごく個人的な感触だが、ブラウザは Edge が、検索エンジンは Bing の利用者が増えている気がする。
デジタル庁を所掌管轄するアナログ省が存在する気もする (しない)

アジサイ

アジサイの花びらは、まじまじ観察すると1枚1枚に個性があるんですねぇ。