問題タブ [sqlgeography]
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.
geospatial - SQL Geography を SQL Geometry に変換するか、検索速度を向上させます
必要性: テーブルの SQL Geography フィールドのコンテンツを SQL Geometry フィールド タイプに変換する SQL ステートメントを探しています。既存のテーブルに追加する新しいテーブル フィールドです。またはより良い解決策、したがって投稿。
理由: ユーザーが挿入した場所の近くの場所の検索を高速化したいと考えています。場所は現在、Lat、Long、および SQLGeography フィールド タイプを持つテーブルに格納されており、Spatial インデックスはこれに基づいています。Geometry 型の計算は Geography 型の計算よりもリソース消費が少ないため、実行速度を優先して精度が低下する可能性があります。私の現在の計算は米国に限定されており、国際的なタイムラインや極を越えることはありません (おそらく将来的には?...)
その他の考慮事項:
- 私の場合、ルックアップは距離だけではなく、特定のエリア(近隣または都市)内です。
- 計算列を作成しようとしましたが、インデックスを作成するために永続化できません。これは 2012 年に可能と聞きましたが、2008 R2 で作業しています。
環境: VS 2012、ASP.NET 4.0、Entity Framework 5 (新しい地理フィールドを C# に適切にマップしませんが、とにかく SQL 側でのみ使用されるため問題ありません)。
質問:
- STDistance ではなく STIntersects を使用しているため、空間インデックス (Location テーブルの Geodata フィールドに基づく) が使用されないということですか?
- 「STIntersects」から「STDistance」を使用するように何らかの形で作り直す必要があります(たとえば、近隣や都市など、エリアのサイズによって異なるため、距離は毎回わかりません)
私が見た良い記事:
- http://msdn.microsoft.com/en-us/library/ff929109.aspx
- http://workshops.opengeo.org/postgis-intro/geography.html
SQL クエリからの抜粋:
sql-server - SQL Server Geography タイプのパフォーマンス - データ トリガーとビュー
SQL Server 2008 R2 で sys.geography 型を使用しようとしています。この地理タイプをロケーション ベースのクエリに使用したいと考えています。たとえば、場所を (経度変数と緯度変数として) ストアド プロシージャに渡し、近くにあるすべてのレコードを返します。
問題は、エンティティ フレームワークが地理タイプをサポートしていないため、この値を C# から直接設定できないことです。
同じテーブルに LocationLatitude 列と LocationLongitude 列を作成することで、この問題を回避しました。エンティティ フレームワークで LocationLatitude 列と LocationLongitude 列を操作し、データベース ストアド プロシージャで地理タイプの "Location" 列を操作します。
私が知る限り、これら 2 つのフィールドから地理の「場所」列を派生させる方法は 3 つあります。
- 「場所」を計算列にする
- テーブルの内容と計算された場所を返すビューを作成します
- テーブルにデータ トリガーを作成します。これにより、地理値が計算され、LocationLongitude または LocationLatitude 列が更新されるたびに Location 列が入力されます。
性能的にはどちらが良いか悩んでいます。#1が最悪だと思うので、#2と#3の間でトスだと思います。
現在、#3 (データ トリガー) を使用していますが、通常はデータ トリガーを避けるのが最善であることはわかっています。これは、その観点からは #2 (ビュー) が最適であることを意味しますが、#2 を使用することは、何らかの理由で信じられないほどばかげているのではないかと心配しています。Stack Overflow は、それを確認するのに最適な場所です。
すぅ…これには#1、#2、#3、または他の方法を使用する必要がありますか?
c# - EntityType 'DbGeography' にはキーが定義されていません
長年のリスナー、初めての発信者 (ついにここでアカウントを作成しました!)...
Visual Studio 2013を.NET 4.5.1およびEntity Framework 6 (RC またはベータ版ではなく最終リリース)と共に使用しています。
DbGeography プロパティをエンティティに追加しようとすると、実行時に次のエラーが発生します。
古いバージョンの Entity Framework への参照がないことを確認済みです (ここで説明します)。これは、.NET (さらに言えば SQL Server) の空間型への私の最初の進出であるため、例/情報としてこの投稿とこの MSDN の記事を使用してきました。
ここに私のエンティティがあります:
私は何を間違っていますか?
sql - ロケーションテーブルを使用して距離テーブルを作成および計算するにはどうすればよいですか?
SQL に TruckLocation テーブルがあります。
結果:
新しいテーブルまたはストア プロシージャを作成したい結果は次のようになります。
やってみましたが失敗しました。
django - ジオメトリ フィールドではなく地理を作成する Django モデル
私はmaplocation = models.PointField()
ジオメトリではなく地理で作業したいと宣言するDjangoモデルを持っています.python manage.py sqlを使用すると"maplocation" geometry(POINT,4326) NOT NULL
、
翻訳が正しくなるようにするにはどうすればよいですか?
sql - Microsoft.SqlServer.Types を Microsoft SQL Server 2012 にインポートする方法は?
国勢調査ブロック シェープ ファイルの Microsoft SQL Server 2012 へのインポートが完了したところですが、取り込んだデータに対していくつかの地理機能 (STContains、STWithin、UnionAggregate など) を使用しようとすると問題が発生します。.prj を確認しました私の .shp ファイルをインポートする前にファイルを作成しました。これは geogrpahy であり、ジオメトリ タイプではないと確信しています。
これは、私が試してみた例です (これは MSDN Web サイトから直接取得したものです)。
これは私が受け取るエラーです:
この件について調査したところ、何らかのアドオン機能をインストールする必要があるようです。C: フォルダーを確認したのは、Program Files/Microsoft SQL Server/100/SDK/Assemblies/Microsoft.SqlServer.Types.dll からインストールするように勧められたからですが、「Assemblies」フォルダーが見つからなかったため困惑しました。また、Microsoft SQL Server 2012 機能パック ( http://www.microsoft.com/en-us/download/details.aspx?id=29065 ) をダウンロードするよう推奨されていましたが、正確に何が必要なのかわかりませんでした。それが正しい場所であったとしても。
あなたが提供できるどんな助けも大歓迎です。前もって感謝します。