ホームページ >バックエンド開発 >PHPチュートリアル >javascript - データベースには多数のプロットが保存されています。各プロットの面積は 4 つの頂点の経度と緯度によって決まります。点の経度と緯度がわかっている場合、その位置がどのプロットに属するかを判断するにはどうすればよいでしょうか。
アイデアをください〜
アイデアをください〜
要求を修正します。PO の所有者の要求は [ジオフェンシング] です
ソリューション:
PostGis+PostGreSQL
ElasticSearch/Solr
MySQL だけに依存することはおそらく不可能です。
またはライブラリを再設計します
place_id | 名前 |
---|---|
1 | ブロック1 |
ID | place_id | 緯度 | 長 |
---|---|---|---|
1 | 1 | 1.1111 | 1.1111 |
2 | 1 | 1.1111 | 1.1111 |
3 | 1 | 1.1111 | 1.1111 |
4 | 1 | 1.1111 | 1.1111 |
参考資料:http://www.cnblogs.com/LBSer/...
これは純粋に数学的な問題のようです。アイデアとしては、4 つの小さな三角形 T1 ~ T4 を使用して、四角形を完成させて長方形 R にすることができます。今絵を描くのは不便なので、自分で想像してください。そして判断してポイントを与えます
リーリー
点オブジェクトを定義します: P[x,y]、x は緯度、y は経度です
プロット領域の 4 つの頂点は次のとおりです: A[x,y]、B[x,y] ]、C[x,y]、D[x,y]
既知の点は次のとおりです: ptr[x,y]
う〜〜
サンプルをいくつか教えてください〜
そうしないと、地理について教えるのにくどくなります〜
保存する際はmysqlの空間関数と演算を使用し、判定する際はST_Contains関数を使用してください。
POINT、ST_AsText、POLYGON、ST_X、ST_Y、ST_DISTANCE を使用します。これらは、経度と緯度を直接保存するよりもはるかに優れています。http://dev.mysql.com/doc/refm...