私は過去数か月にわたってPHP、PDO、SQLを習得し、PHP / SQLのベストプラクティスに従って、ユーザー登録/電子メールアクティベーション/およびログインログアウト機能を備えた基本的な動的Webサイトを構築しました。今、私は次のタスクで立ち往生しています...
正方形/ポリゴン(300万以上)の巨大なデータセットを作成しました。それぞれのサイズは緯度と経度の1分で、単一の座標セット(左上隅)を持つPHP配列に格納されています。正方形のような形状を外挿するには、各方向に0.016度(約1分)を追加して、他の3つの座標を生成します。
ここで、上記の配列の各ポリゴンが米国の土地の少なくとも一部にあることを確認する必要があります。つまり、完成したデータセットのグラフィック出力を生成して、サンフランシスコの海岸線を確認する場合です。 、彼らはこのようなものを見るでしょう。
これは、ポイントインポリゴンの問題に似ていますが、ポイントではなく別のポリゴンを処理し、他のポリゴンは国境であり、交差点だけを見ているわけではありません。次のことを確認したい:
- ポリゴン/正方形はポリゴンと交差します。(海岸線/境界線を考えてください)。
- ポリゴン/正方形はポリゴンの内側にあります。(米国本土を考えてください)。
- ポリゴン/正方形には、ポリゴンの一部が含まれています。(小さな島を考えてください)。
これは私の大雑把に描かれた画像で示されています:
これらの3つの条件のいずれかに一致する場合は、正方形を維持したいと思います。とにかく大きなポリゴンと相互作用しない場合(つまり、水上にある場合)、それを破棄します。
大きなポリゴンは米国のシェープファイル、または座標を取り除いて非常に複雑なポリゴンを作成できるKMLファイルになると思っていました。
次に、これらの一致する正方形と正方形IDをcsvファイルに渡して、各正方形の座標のセットを含むMySQLテーブルに統合することを考えました(実際、テーブルを処理するためのベストプラクティスすらわかりません) MySQLではそのサイズですが、必要に応じて説明します)。最終的な目標は、Javascriptを介してGoogle Maps APIを使用して地図を作成し、コーディングしているWebサイトの地図上にこれらの正方形を表示することです(明らかに、データベースに負担をかけないように、視点内に正方形のみを表示します) )。私もそのような情報を最初にPHPを介して渡さなければならないと確信しています。しかし、実際にデータセットを作成するタスクと比較すると、これらはすべて比較的簡単に思えます。
これは明らかに手作業ではできないことなので、自動化する必要があります。私はPythonを少し知っているので、それは役に立ちますか?どこから始めるべきかについての他のヒントはありますか?私のためにコードのいくつかを書いてくれる人はいますか?