問題タブ [geospatial]
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.
php - SQLiteを使用した大円距離の計算
これが私の問題です。場所と緯度/経度を含むSQLiteテーブルがあります。基本的に私はする必要があります:
HAVERSINE()
は、緯度と経度の値のペアが与えられた場合に大圏距離(マイルまたはkm)を返すPHP関数です。これらのペアの1つはPHPによって提供され、もう1つのペアはテーブルで使用可能な各緯度/経度の行によって提供される必要がありlocations
ます。
SQLiteにはGeoSpatial拡張機能がないため(AFAIK SpatiaLiteは存在しますが、それでも...)、PDOメソッドのいずれかでカスタム関数を使用するのが最善の方法だと思います。
この場合は十分だと思いますがPDO::sqliteCreateFunction()
、この関数に関する私の限られた経験は、PHPマニュアルで提供されているものと同様の使用例に減らすことができます。
PHPからのデータとテーブルデータを同時に処理するSQLiteユーザー定義関数を取得する方法を理解するのに問題があります。SQLiteUDFを理解しながらこの問題を解決するのを誰かが助けてくれれば幸いです(大きな勝利) SQLite IMOの)少し良くなりました。
前もって感謝します!
php - 地理的近接性を計算する式
アプリケーションに地理的近接検索を実装する必要がありますが、使用する正しい式について非常に混乱しています。Web と StackOverflow でいくつか検索した結果、解決策は次のとおりであることがわかりました。
- ヘバーシン式を使用する
大圏距離公式を使用する- データベースで空間検索エンジンを使用する
オプション #3 は、ATM のオプションではありません。大圏距離の式とハバーシンの式は同義語だといつも思っていたので、少し混乱していますが、明らかに間違っていましたか?
上記のスクリーン ショットは、すばらしいGeo (proximity) Search with MySQLの論文から取得したもので、次の関数を使用しています。
また、次のように、同じ式(余弦の球面法則)からのバリエーションも見ました。
次の関数を使用します。
私は数学の専門家ではありませんが、これらの式は同じですか? 私はさらにいくつかのバリエーションや数式(コサインの球面法則やVincenty の 数式など- 最も正確なようです) に出くわしましたが、それは私をさらに混乱させます...
PHP / MySQL に実装するための適切な汎用式を選択する必要があります。上記の式の違いを説明できる人はいますか?
- 計算が最も速いのはどれですか?
- 最も正確な結果を提供するのはどれですか?
- 結果の速度/精度の点で最も優れているのはどれですか?
これらの質問に対するあなたの洞察に感謝します。
唯一の理論的な答えに基づいて、次の大圏距離公式をテストしました。
- ヴィンセント・フォーミュラ
- ハバーシンフォーミュラ
- 余弦の球面法則
Vincenty Formulaは非常に遅いですが、かなり正確です (0.5 mm まで)。
Haversine Formulaは Vincenty Formula よりもはるかに高速で、約 6 秒で 100 万回の計算を実行できました。
コサインの球面法則式は、Haversine 式のほぼ 2 倍の速さであることが明らかになり、精度の違いはほとんどの使用例で無視されます。
ここにいくつかのテスト場所があります:
- Google 本社(
37.422045
、-122.084347
) - カリフォルニア州サンフランシスコ(
37.77493
,-122.419416
) - エッフェル塔、フランス(
48.8582
,2.294407
) - オペラハウス、シドニー(
-33.856553
,151.214696
)
Google 本社 - カリフォルニア州サンフランシスコ:
- ヴィンセンティ式:
49 087.066 meters
- ハバーシン式:
49 103.006 meters
- 余弦の球面法則:
49 103.006 meters
Google 本社 - エッフェル塔、フランス:
- ヴィンセンティ式:
8 989 724.399 meters
- ハバーシン式:
8 967 042.917 meters
- 余弦の球面法則:
8 967 042.917 meters
Google 本社 - オペラ ハウス、シドニー:
- ヴィンセンティ式:
11 939 773.640 meters
- ハバーシン式:
11 952 717.240 meters
- 余弦の球面法則:
11 952 717.240 meters
ご覧のとおり、Haversine Formula と Spherical Law of Cosines の間に目立った違いはありませんが、Vincenty Formula と比較して距離オフセットが 22 kmもあります。これは、球面ではなく地球の楕円体近似を使用するためです。
math - 球面三角形が鈍角かどうかの判定
経度と緯度によって定義された 2 つのポイント A と B が与えられた場合、別のポイント C が A と B の間の範囲にあるかどうかを判断したいと考えています。私はライン上にあるという意味ではありません - それはほぼ確実にありません。
幾何図 http://www.freeimagehosting.net/uploads/b5c5ebf480.jpg
この図では、点 C は点 A と点 B の法線とそれらの間の線 (細い線で示される法線) の間にあるため、A と B の間の ~ 間です。ポイント D は A と B の間ではなく、B と F の間です。
別の言い方をすれば、三角形 ABC と ABD が鈍角かどうかを判断したいということです。
ポイントは互いに非常に接近していることに注意してください - 通常は数十メートル以内です。
haversines の法則が役立つかもしれないと考えていますが、haversine の逆が何であるかはわかりません。
すべての助けに感謝します。
.net - SQLServerからの空間データを処理するための.Netライブラリ
地図上に空間データを表示するアプリケーションを作りたいです。SQL Serverの空間機能の使用を考えていますが、C#でそのデータをどのように処理すればよいかわかりません。そのために使用できる優れたライブラリはありますか?
silverlight - WCF Ria サービスは、クライアント側で既知のカスタマイズされたエンティティをどのように作成できますか?
エンティティ モデルを構築しました。私のビジネス オブジェクトの 1 つは、それを Store と呼びましょう。空間データ型があります。非常にすぐに、空間フィールドが EF4 経由でマップされていないことがわかりました。ただし、次のようなクエリを定義するxml宣言を編集することで、私は苦労しました。
この時点で、このような部分クラスを介して Store エンティティをカスタマイズすることにしました。これは、変換を行い、SQLGeography データを格納したままにして、クライアントで double[] だけを返すためです (SqlGeography も Location (Bingデータ・タイプ)。
}
クライアント プロジェクトで、小さなカスタマイズの Store データ型を認識させるにはどうすればよいですか? ありがとうございました!
sql-server-2008 - JPG への SQL2008 地理クエリ
SQL 地理クエリの結果を取得して、[空間ビュー] タブに表示されるものと同様の JPG を作成したいと考えています。
私は200以上のクエリでこれを行っているので、自動化できるものはいいかもしれません. これを行うためのアプリは既に存在しますか、それとも自分で作成する必要がありますか?
maps - SpatialKeyのような密度/ヒートマップの生成
SpatialKeyは、非常に見栄えの良いヒートマップを生成します。私たちは、大量のポイントを視覚化するための内部プロジェクトでこれを行うことに何が関係しているかを調べています。どこから始めればよいかについてのフィードバックを探しています(そしてそれは本当に興味深い問題です)。
SpatialKeyヒートマップhttp://img697.imageshack.us/img697/7964/resolutiondays508x17550.jpg
彼らがFlashを使用していることはわかっています。そして、ヒートマップはタイルサーバーからレンダリングされるのではなく、インタラクティブであることがわかります。これがどのように実装されているかについての最初の推測は、サーバーがFlashクライアントにグリッドを提供することです。各セルにはサーバーによって計算されたカウントがあります。次に、Flashクライアントは、グリッド内のセル値に基づいて補間を実行し、上記のようにきれいな出力を作成します。
この段階では、サーバー側でグリッドを効率的に生成する方法に関心があります(実装に関する仮定が正しい場合)。それには以下が含まれるようです:
- 現在マップ境界にあるもののクエリを実行する
- これらの範囲内の各セルに対して集計サブクエリを実行します(上記の例のように、カウント、合計、または平均を実行します)。
これを複数のズームレベルで適切なグリッド解像度で実行すると、これを効率的にするにはカスタムの空間インデックスが必要になるようです。
代替ルートを説明する人はいますか?重要な場合は、ここでは空間インデックス用のPostGISを使用してPostgreSQLにデータを保存することに慣れていますが、私は何でも試すことができます。
mysql - SQL クエリで最も近い緯度/経度を見つける
私は緯度と経度を持っており、その距離が指定された距離よりも長くなった場合、その距離が最も近い緯度と経度を持つデータベースからレコードを取得したいのですが、それを取得しないでください。
テーブル構造:
django - GeoDjango、dwithinとdistance_ltの違い?
geoDjangoを使用すると、次の違いは何ですか
と
?
それらは同じことですか、それとも微妙に異なることをしていますか?
python - Google App Engine を使用した GeoModel - クエリ
GeoModel Python モジュールを使用して、Google App Engine アプリの地理空間データにすばやくアクセスしようとしています。直面している問題について、いくつか一般的な質問があります。クエリを返すために使用できる、proximity_fetch と bounding_box_fetch の 2 つの主要なメソッドがあります。実際には、フィルターされたクエリではなく結果セットを返します。つまり、フィルターされたクエリを渡す前に完全に準備する必要があります。また、結果がフェッチされるため、クエリセットを反復処理することも制限されます。フェッチにオフセットを入力するオプション。
コードを変更する以外に、クエリにオフセットを指定するためのソリューションを推奨できる人はいますか? 私の問題は、変数に対して各結果をチェックして、それを使用できるかどうかを確認する必要があることです。それ以外の場合は、破棄して次をテストします。追加のフェッチを行う必要がある場合に遭遇するかもしれませんが、オフセットから始めます。