1

SO私はjQuery DataTablesをセットアップして正常に実行しています。私の最終的な目標は、ユーザーが Google プレイスのオートコンプリートを使用して場所を更新し、更新時に「並べ替え可能な」距離列を DataTables テーブルに追加できるようにすることです。

計画は、Googleオートコンプリートのテキスト入力の横にボタンを配置することです.ページを数秒間ロードしている間、

1) テキスト文字列を読み取り、Google ジオ コーディング API で使用できるようにフォーマットします。

「クランボーン、ビクトリア、オーストラリア」---->「クランボーン+ビクトリア+オーストラリア」

2) ジオコード リクエストに挿入する

3) 結果の json から緯度と経度の値を抽出し、それらを vars に割り当てます。

ここで難しい部分が来ます.phpを使用して、ユーザー間の距離(緯度、経度)と、外部キー(すべてのSQL行には緯度経度データがあります)

次に、上記のエントリをxmlに送信することを考えていましたが、今回のみ、すべてのエントリに追加の値「DISTANCE」が含まれます。

いくつかの巧妙なコードを使用すると、この全体に1秒もかかりません。新しいDataTableテーブルにxmlが入力されます。今回のみ、すべての行の距離値を持つ距離列が含まれています。これは、DataTableなしでソート可能になります。これまでに何をハックします。

だから私は愚かですか、それともこれはやや良い考えですか、もっと簡単な方法はありますか?

私は本当にこれに対するいくつかの答えが欲しいですありがとう。

4

2 に答える 2

0

これは非常に古い質問であることは知っていますが、ちょうどそれに出くわしたので、Haversine Formulaを使用して緯度と経度の値の間の距離を計算することをお勧めしたいと思いました

私はこの実装を使用しましたが、非常にうまく機能することがわかりました

于 2016-06-02T14:00:59.710 に答える
0

球面幾何学を使用する必要があるため、実際には難しい場合があります (数学の専門知識によっては)。API の使用を検討してください。

https://developers.google.com/maps/documentation/distancematrix/

自分でやってみたい場合は、そのために書かれた次のようなクラスを使用することをお勧めします。

http://www.phpclasses.org/browse/file/36294.html

Google の API には制限があるため、おそらく 2 番目のオプションの方が適しています。距離を計算する方法がわかれば、データベースにクエリを実行して XML を作成するのは簡単なことです。json の代わりに XML を使用する理由はわかりませんが、PHP 関数 json_encode() を使用すると簡単になる可能性があり、DataTables でサポートされています。

于 2013-01-15T15:49:39.217 に答える