問題タブ [geodjango]
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.
django - Django & Postgis : ST_Distance_sphere を使用した距離ルックアップ
Django documentationで、私はこれを読みました:
dwithin を除くすべての距離ルックアップで、オプションの 3 番目の要素 'spheroid' を含めて、GeoDjango に測地座標系のフィールドでより正確な回転楕円体距離計算関数を使用するように指示できます (たとえば、ST_Distance_Sphere の代わりに ST_Distance_Spheroid が使用されます)。
しかし、Postgis 1.5 データベースで「distance_lte」を使用して距離ルックアップを実行しようとすると、クエリは「ST_Distance_sphere」ではなく「ST_Distance」で実行されます。なんで ?私は何かを忘れましたか?
これを印刷する:
ありがとう
django - geoDjango - Unicode への強制: 文字列またはバッファーが必要です。LineString が見つかりました
私は geoDjango で Django インストールを実行しており、次のようなモデルを作成しました:
これは機能し、端末内で折れ線オブジェクトを作成することができました。確かに、それらを実際に表示することはできませんでしたが、表示がまだ完全に終了していないためです。
しかし、その後、2008 年から、geodjango の作成者である bronn のスクリーンキャストを見ました。彼は管理ページで openlayer オープン ストリート マップ インターフェイスを取得し、彼の指示に従い、OSMGeoAdmin を使用して admin.py を追加すると、次のようになります。
これも正常に動作しています - 折れ線を描画できるマップを取得しますが、それを保存しようとすると、または Route オブジェクトが既に作成されていて、管理ページで Route リストを表示しようとすると、エラーが発生します。より具体的には、「Unicodeへの強制:文字列またはバッファが必要、LineStringが見つかりました」と私が理解していることから、これは __ unicode__ 関数(またはこのようなもの)を持たないオブジェクトをユニコードしようとすることから来ています。
そこで、折れ線オブジェクトの定義を確認しましたが、Unicode 関数がなかったので、うまく追加できませんでした。
ここで私は困惑しています。この問題を解決する方法を知っている人はいますか?
スタックトレースを編集:
mapping - Geodjango: OSGB_1936 からデータをインポートし、WGS84 で表示しますか?
投影 SRID 27700 で PostGIS データベースに保存されたポリゴン データがあります。
OpenStreetMap、つまり SRID 900913 で形状を表示したい (と思いますか?)。
だから、2つの質問:
- 以下のコードを OpenStreetMap の正しい SRID で出力するように変更するにはどうすればよいですか?
- 以下の Django コードを変更して、ポリゴンとして表示する準備が整った素敵な json オブジェクトを提供するにはどうすればよいですか?
この質問が意味をなさない場合はお詫び申し上げます - 私は GeoDjango を初めて使用します。
postgresql - GeoDjangoのセットアップ:エラー:ファイル "$ libdir / postgis-1.5"にアクセスできませんでした:そのようなファイルまたはディレクトリはありません
更新:私はそれを解決したと思ったが、私は解決しなかった...以下を参照してください。
MacOSXにGeoDjangoをインストールしています。私はMacのインストール手順に従いましたが、すべてスムーズに進み、PostGIS用の空間データベーステンプレートを作成しています。
ただし、PostGIS SQLルーチンを読み込もうとすると、次のようになりますERROR: could not access file "$libdir/postgis-1.5": No such file or directory
。
何が問題になっていますか、どうすれば修正できますか?
私はpostgisIRCからこれらの指示を見つけましたが、私はpg_configなどの正しいバージョンを実行していると思います:
私はKyngChaosからpostgresとそのPostGIS拡張機能をインストールしました。調べてみると/usr/local/pgsql/lib
、そこにファイルpostgis-1.5.so
があるので、なぜ見つからないのかわかりません。
postgresql - GeoDjango:標準のPostGISテンプレートを編集してOSGB36を含める
GeoDjango(yay)をインストールしたばかりですが、次の手順に従って、OSGB36を必要とする既存のGeoDjangoプロジェクトをセットアップしようとしています。
でも。GeoDjangoインストールの一部として作成されたpostgis_templateに接続すると、行や列がまったく表示されないようです。
ここで説明するように、SRID27700およびSRID29902を更新するために必要な編集を行うにはどうすればよいですか?template_postgisを間違って作成しましたか?インストール中にエラーは発生しませんでした。
postgis - PostGISで大きなマルチポリゴンを効率的にクエリする方法
断片化されすぎて効率的にクエリできないように見える無線マップを使用しています。単一のポイントがマルチポリゴン内にあるかどうかを尋ねると、応答時間は20〜40秒です(「範囲内」/「含む」/「重複」をテストしました)。私はPostGISとGeoDjangoを使用してクエリを抽象化します。
マルチポリゴン列にはGiSTインデックスがあり、VACUUMANALYZEを試しました。私はPostgreSQL8.3.7を使用しています。およびDjango1.2。
マップは広い地理的領域に広がっています。これらは元々、地形を意識した無線ツールによって生成されたため、無線セル/ポリゴンは断片化されています。
私の目標は、マルチポリゴン内のポイント(つまり、信号でカバーされている場合とされていない場合がある家)を照会することです。
すべてのラジオマップは、100.000から300.000の頂点(合計)で構成されており、ポリゴンの数は大きく異なります。一部のマップには、10未満のポリゴンがあります。そこから、10.000〜30.000ポリゴンにジャンプします。ポリゴンと頂点の比率は、クエリが完了するまでにかかる時間にはあまり影響しないようです。
私は投影座標系を使用しており、住宅とラジオの両方のセクターで同じシステムを使用しています。Qgisは、無線セクターとマップが地形に正しく配置されていることを示しています。
私のテストクエリは、単一の無線マップ内で一度に1つの家だけを対象としています。「within」/「contains」/「overlaps」などのクエリをテストしましたが、結果は同じです。
家がラジオマップから「遠い」場合の1秒未満の応答(これは、クエリで自動的に使用されるバウンディングボックスの外側にあるためだと思います)。
家/ポイントが無線マップに近いか、無線マップ内にある場合、応答時間は20〜40秒です。
クエリを最適化する別の方法がありますか、それとも何らかの方法でソースマテリアルを変更/簡略化する必要がありますか?アドバイスをいただければ幸いです。
django - Lat/LongデータをPostgreSQLにインポートする方法
PostgreSQL /Django/初心者はこちら。
会場と緯度/経度の情報を含むJSONデータがたくさんあり、データベースにインポートしたいと考えています。これまで、JSONをSQLステートメントにフォーマットするスクリプトを作成してきたので、多数のINSERTステートメントを使用してそれらをインポートできます。
しかし、ST_PointFromText('POINT(lon lat)')構文を使用しようとすると、'location'フィールド(PointField)が悲しみを与えてくれます。具体的には:
エラー:リレーション「finder_venue」の新しい行がチェック制約「enforce_srid_location」に違反しています
では、適切なSRIDを生成するにはどうすればよいですか?
または、Djangoの使いやすさを考えると、ここでプログラマティック異端を犯しているように感じずにはいられません。誰かが私をもっと賢い方向に向けることができますか?
ありがとう、
ジョン
mysql - GeoDjango PointField から Mysql で読み取れないデータ
MySQL で GeoDjango を使用しています。私はmodels.PointField(srid=4326)
オブジェクトを使用し、すべて正常に動作し、データは正しく保存され、データベースから取得されますが、select * from table
MySQL コマンドラインから実行すると、PointField
フィールドのデータはPOINT(x,y)
フォームではなく、予期したとおりに読み取り不能な文字が表示されます。
それは正常な動作ですか?
geocoding - 英国ナショナル グリッド参照を WKT として GeoDjango に提供するにはどうすればよいですか?
次のように定義された Django PointField に National Grid 参照を挿入しようとしています。
ただし、WKT で正しくフォーマットする方法がわかりません。これは、基本的な National Grid リファレンスを単純に使用してみると、次のようになりますTR3241
。
そして、これは私が(WKTを読んだ後に大雑把に推測して)使用した場合に得られるものですPOINT(TR3241)
:
グリッド参照を正しくフォーマットするにはどうすればよいですか?
python - GeoDjangoを使用したpostGISでのパフォーマンスが必要
postGISでGeoDjangoを使用するのはこれが初めてです。インストールとすべてが正常に実行されているいくつかのテストの後、テーブルの行が大きくなるときのクエリのパフォーマンスが心配です。
Googleジオコーディング(WGS84、またはSRID 4326)から取得したジオメトリポイントの経度と緯度を保存しています。私の問題は、距離操作が私のアプリケーションで非常に一般的であるということです。私はしばしばランドマークからスポットに近づく必要があります。幾何学の計算は非常に複雑なので、空間インデックスを持っていても、近くのエリアに1000を超えるスポットがあると、将来的には時間がかかりすぎる可能性があります。
では、このジオメトリタイプを投影して、距離操作をより高速に実行する方法はありますか?これらのポイントのいくつかを含むGoogleマップをレンダリングできるDjangoライブラリを知っている人はいますか?
GeoDjangoで空間クエリを高速化する方法に関するアドバイスはありますか?