2017-08-20 12 views
-1

GoogleマップのJavascriptライブラリを使用しています。 私はポリゴンが格納されたデータベースを持っており、特定の座標に収まるものだけを持っていきたいと思います。Google Mapsのポリゴンを特定の座標内に移動するにはどうすればよいですか?

私は、緯度99.42333、緯度-99.169333に立っていると言います...私は1kmの周りにあるポリゴンをどのように持ってくることができますか?これはポリゴンの巨大なテーブルなので、それぞれのテストは不可能です。

「quadrant_lat」と「quadrant_lng」の2つの列を追加して、それに一致するすべての行をラップすることを考えていましたが、これは正しい方法ではないと思います。

アイデア?ありがとう

答えて

0

効率的な解決策は、データベース内のポリゴンのジオインデックスを作成することです。近代的なデータベースのほとんどすべてに、事前にバンドルされたジオインデックスとクエリ機能が付属しています。または、これを行うためのプラグイン/ライブラリを提供しています。

ジオインデックスは、指定された緯度経度のペアの半径Xメートル以内のポリゴンを検​​索するために使用できます。これはすべてのジオサーチの中で最も簡単ですが、2D/3Dジオインデックスを使用してさらに高度な処理を行うことができます。マップビュー/クライアントで、GoogleマップAPIを使用して、ジオクエリによって返されたポリゴンをレンダリングします。

データベースにジオ機能がない場合は、重労働を解消するためのコードを記述する必要があります。ソリューションは、データセットのサイズに依存します。

どのデータベースを使用していて、いくつのポリゴンがあるのですか?

+0

こんにちは、お返事ありがとうございます。私はMySQLを使用しており、ポリゴンは100k +になる可能性があります。 – mkmnstr

+0

MySQLサーバーはジオ関数を強力にサポートしています – balendran

+0

100K +レコードでは、レコードを照会するためにインデックスを使用することをお勧めします。つまり、データセットがさらに拡大しても、今後のデータベースのスケーラビリティについて心配する必要はありません。 MySQLサーバはジオ関数を強力にサポートしています。このブログ記事では、インデックスベースの検索とテーブルに格納されたポイントの直接クエリの両方を表示する例を使って、機能をまとめています。 https://www.percona.com/blog/2013/10/21/using-the-new-mysql-spatial-functions-5-6-for-geo-enabled-applications/ – balendran

関連する問題