ホームページ >バックエンド開発 >PHPチュートリアル >javascript - データベースには多数のプロットが保存されています。各プロットの面積は 4 つの頂点の経度と緯度によって決まります。点の経度と緯度がわかっている場合、その位置がどのプロットに属するかを判断するにはどうすればよいでしょうか。

javascript - データベースには多数のプロットが保存されています。各プロットの面積は 4 つの頂点の経度と緯度によって決まります。点の経度と緯度がわかっている場合、その位置がどのプロットに属するかを判断するにはどうすればよいでしょうか。

WBOY
WBOYオリジナル
2016-10-10 11:55:551318ブラウズ

アイデアをください〜

返信内容:

アイデアをください〜

要求を修正します。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...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。