異なる色の領域をパスに変換することにより、ラスターグラフィックからSVGファイルに変換したマップがあります。
エッジの配列を指定して基本的なポリゴンのポイントチェックを行う方法は知っていますが、svg:path
要素は複数のポリゴンとマスク(海などを考慮)を表し、d
属性を解析してその情報を抽出するのはかなり手間がかかるようです。
そのチェックを簡素化できるJSライブラリはありますか?基本的に、ランダムなポイントを作成して、それらが陸(つまりポリゴンの内側)にあるのか水(つまり外側)にあるのかを確認したいと思います。
SVG要素はマウスイベントの処理を可能にするように見えるので、これはそれほど問題にはならないはずです(つまり、マウスポインターが要素の上にあるかどうかがわかれば、すでにポイントインを解決しています。ポリゴンの問題)。
編集:問題を少し複雑にしますが、svg:path
要素は線ではなく曲線に基づいているように見えるので、d
属性を解析してエッジの配列を作成することはオプションではないようです。
要素は属性を取ることができるのでfill
、キャンバス上にSVGをレンダリングし、特定のポイントでピクセルのカラー値を見つけるというゲットーのアプローチは機能する可能性がありますが、それは本当に、本当にひどい方法のようです。