問題タブ [haversine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
28580 参照

php - PHPを使用したHaversine式

この式をphpで使用したいと思います。緯度と経度の値が保存されたデータベースがあります。

入力に緯度と経度の特定の値を使用して、データベース内の各ポイントでこのポイントからのすべての距離(km単位)を見つけたいと思います。これを行うために、私はgooglemapsapiの式を使用しました。

もちろん、phpでそれを使用して、ラジアンをに置き換えましたdeg2rad。値37、-122は入力の値であり、lat、lngはデータベースの値です。

以下に私のコードがあります。問題は何かがおかしいということですが、私には何がわかりません。もちろん距離の値は間違っています。

たとえば、値の場合:$ lat = 41.9133741000 $ lng = 12.5203​​944000

distance="4826.9341106926"の出力があります

0 投票する
2 に答える
821 参照

cakephp - CakePHP 2.2.4 は、HAVING 句と計算フィールドを使用して結果をページ付けできません - Haversine 式

CakePHP 2.2.4 で haversine 式を使用して距離を計算するときに、結果のリストをページ分割しようとしていますが、having 句の計算フィールドでエラーが発生します。

私はこれを理解しようと真剣に何週間も費やしましたが、できません。私はいくつかの投稿を読みました.countメソッドをオーバーライドする必要があると言っているものもあれば、他のことを試してみると言っているものもありますが、Cakeの古いバージョンに関連しています.

誰かがこれを機能させるために何をする必要があるかを正確に教えてもらえますか? 同じことを達成しようとして成功した人は何百人もいるはずです。

私が使用しているコードは次のとおりです。

そして、私が取得し続けるエラーは次のとおりです。

エラー: SQLSTATE [42S22]: 列が見つかりません: 1054 不明な列 'distance' in 'having clause'

助けてください!

0 投票する
1 に答える
1800 参照

php - haversine 式 php / mysql

半径検索で動作するジオポイントの共通データベースを取得しようとしています。このトピックに関するいくつかの優れたチュートリアルを見つけましたが、最後に失敗しています。

主なチュートリアルはこちら: http://janmatuschek.de/LatitudeLongitudeBoundingCoordinates .

SQL クエリ形式の基本式は次のとおりです。

これを、次のような単純な PHP テスト ページに実装しました。

ここで何か不足していますか?方法論に正確に従っていると思いますが、「微調整」クエリで結果を返すことができません。

0 投票する
1 に答える
897 参照

distance - haversineを使用したphpの2つの座標間の距離

私は周りを見回して、2つの座標(lat1、lng1)と(lat2、lng2)の間の距離を決定するための半正矢関数の言及を見てきました。

私はこのコードを実装しました:

そして決定しようとしています:

1)これが返すユニットは何ですか?(目標はフィート単位)

2)この方程式は正しい方法で書かれていますか?

たとえば、これら2つのポイント間の距離はどのくらいにする必要がありますか?

(32.8940695525、-96.7926336453)および(33.0642604502、-96.8064332754)?

上記の式から18968.0903312を取得しています。

ありがとう!

0 投票する
2 に答える
377 参照

php - ロケーション認識検索用に既存のデータベースを準備するにはどうすればよいですか?

要件:私は現在、30000を超えるレコードを持つアプリに取り組んでいます。要件は、ロケーションベース/認識検索を行うことです。たとえば。私の現在の場所から5マイル以内。

このサービスへのアクセス方法:このサービスには、WebアプリとiOSアプリの両方からアクセスします。

開発プラットフォーム

  • Web:Cakephp、php、python
  • DB:MySql
  • iOS:Objective-c
  • 現在使用されている外部ライブラリ:Google Maps Javascript Api v3

ロケーションベースの検索

私はこのテーマについていくつかの研究を行っており、これにはHaversineFormulaを採用する予定です。しかし、Haversineの式を有効にするには、DB内のすべてのレコードに対して逆地理コードを使用する必要があります。私が今まで使用した唯一の逆ジオコーディングサービスはGoogleからのものであり、結果を地図に表示せずにこれを許可していないことを知っています。

注:ジオコーディングAPIは、Googleマップと組み合わせてのみ使用できます。地図に表示せずに結果をジオコーディングすることは禁止されています。

  1. これらすべてのレコードを地理コードを逆にするために使用できる他のAPIまたはサービスはありますか?
  2. 30000は大きな数字です。私は明らかに一定期間このためにcronジョブを使用しますが、この要求は同じIPからのものであるため、これは問題になる可能性がありますか?

これに関するどんな助けも高く評価されるでしょう。

アップデート1#

OpenStreetMapNominatimを推奨するこのSOの質問を見つけました

0 投票する
3 に答える
237 参照

php - 実行時間制限に達した PHP コード

マップ内のポイントを含む配列を調べて、それらの距離を確認する必要があります。それぞれのノードから 200m と 50m 以内にあるノードの数を数える必要があります。値が小さい場合は問題なく機能します。しかし、さらに多くの値 (スケーラビリティ テストでは約 4000) を実行しようとすると、最大実行時間の 300 秒に達したというエラーが発生します。できれば300秒以内にこれだけ処理できる必要があります。

私は周りを読んで、この制限を無効/変更する方法があることを知りましたが、実行にかかる時間を短縮するために次のコードを実行する簡単な方法があるかどうか知りたいです.

インデックス 0 には各ノードの一意の ID が含まれ、インデックス 1 には各ノードの緯度が含まれ、インデックス 2 には各ノードの経度が含まれます。

エラーは、最初のループ内の 2 番目の for ループで発生します。このループは、選択したマップ ノードを他のノードと比較するループです。私もハーバーシンフォーミュラを使っています。

0 投票する
3 に答える
6811 参照

php - データベース内のデータが PHP コードで MySQL から取得されない

データベースを実装してから、PHP を介してデータベースからデータを取得しています。

私のコードでは、名前でデータをフィルタリングすることになっています。名前が存在する場合は、データを印刷したいと考えています。欲しい商品は表にあるのに何も表示されない。エラーがどこにあるのか理解できませんでした。データベースには場所に関する情報しかありません。データベースにユーザーの場所を保持していません。

私のコードは次のとおりです。

編集:

ここで、ユーザーに最も近い場所を表示したいと思います。コードを検索して変更しました。$userLatitude=$_GET['userLatitude']; で始まる行にエラーがあります。. here に予期しない t_string エラーがあると表示されます。エラーの意味がわかりませんでした。もう一度助けてもらえますか?

0 投票する
2 に答える
64 参照

mysql - END IFでMySQL CREATE FUNCTIONが壊れる

2 つの緯度/経度ポイント間の距離を計算する関数を作成しようとしています。END IF;ただし、関数本体の部分でCREATE FUNCTION が壊れています (IF/ELSE/ENDブロックを削除して確認)。

何か案は?アプリケーションに計算を追加する手間を省くために、M / KM の差を保持したいと思います。

0 投票する
1 に答える
1005 参照

javascript - ノックアウト + 大規模なデータセットのパフォーマンス

クライアント側でフィルタリングして表示できるようにしたい非常に大きな緯度/経度データセットがあります。できる限りプロファイリングして最適化しましたが、パフォーマンスを高速化するために他にできることはありますか?

  • 精度はマイル/キロメートルレベルである必要があります。
  • IE 7/8/9/10 のサポートが必要ですが、さらに下に行くほどパフォーマンスが低下する可能性があることを受け入れています。
  • 仕事に最適なものは何でも、私はどのライブラリにも絶対に依存していません。

だいたい

  • クロム: 1.1 秒
  • ファイアフォックス: 0.9 秒
  • IE10: 5.1秒
  • IE9: 3 秒

http://jsfiddle.net/hRvKz/

0 投票する
2 に答える
193 参照

database - 緯度と経度のペアから指定された距離内にあるすべての緯度と経度のペアを見つける

何百万もの緯度/経度のペアを含むデータベースがあります。特定の緯度/経度ペアから指定された距離内にあるすべての緯度/経度ペアを収集する関数を実装したいと考えています。データベース内の各ペアを繰り返し処理し、そのペアと指定されたペアの間の距離を計算するよりも、これを行うためのより良い方法はありますか? 力ずくで回避できるなら避けたい!

指定された緯度と経度のペアから 1 マイルを超える緯度と経度のペアを検索することは決してないことを付け加えておきます。