問題タブ [wms]
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.
paste - WMS/WFS サーバー: 自分で作成するのは気が狂っていますか?
私は「自分でやる」タイプの男ですが、噛むことができる以上に噛むことで自分自身をやろうとしないようにしたい.
エンド ユーザーのマシンでスタンドアロン (インターネット接続なし) を実行するオプションが必要なブラウザー ベースのマッピング アプリケーションを作成しています。つまり、アプリケーションは、多くの場合、エンド ユーザーのマシンにインストールされるある種のサーバーであり、ブラウザーはそれにアクセスするために何らかの localhost URL を指します。
クライアント側で MapLayers を使用し、サーバー側には、特定のカスタム方法でマップ上のクリック イベントを処理したり、特定の時間にマップ上にさまざまなカスタム オブジェクトを作成したりするなど、アプリケーションに固有の一連のカスタム ロジックがあります。等々。
サーバーの「ビジネス ロジック」部分については、python で paste/webob を使用して満足しています。これは、このすべてのカスタム ロジックを簡単に配置できる単純なインフラストラクチャです。
私は、クライアントが 2 つのサーバーと通信することを考えていました。この貼り付け/webob ビジネス ロジック サーバーと、WMS および WFS マップ要素を提供するためだけのサーバーです。そこで、マップ パーツを処理するために MapServer と GeoServer を検討していましたが、満足できませんでした。
クライアント マシンに "獣" をインストールして心配する必要がないので、私は満足していません。MapServer については、Apache のような本格的な Web サーバーをインストールしたくありません。また、CGI と PHP と MapScript を処理する必要があります。GeoServer の場合、(潜在的に) Java をインストールし、GeoServer のセットアップと管理のさまざまな複雑さを処理します。
これの一部は、単に学習曲線の問題です。それを避けることができれば、MapServer や GeoServer の複雑さを学ぶことに特に興味はありません。私は GeoServer をインストールし、それを私のデータの一部に向け、GeoServer の優れた Web 管理に組み込まれている MapLayers プレビューを使用して私のデータを表示することができました。しかし、GeoServer を指す自分の MapLayers Web ページを使用して実際にデータを提供しようとすると、GeoServer がクラッシュしました。クライアントからおそらく不正な形式のリクエストを送信するだけでサーバーをクラッシュさせることができるということは、私にとって非常に驚くべきことでした。そして、GeoServer のログを調べて、何が間違っていたのかを突き止めようとすることもできますが、そのために多くの時間を費やしたくありません。
そのため、既に持っているペースト/webob サーバーを使用して、WMS および WFS インターフェイスの一部を自分で実装することを検討しています。実際には、WMS だけが必要なのかもしれません。クライアントにデータを渡すために作成した単純なカスタム プロトコルを介してベクトル オブジェクトを処理し、OpenLayers を使用してオブジェクトを直接作成および操作できるからです。
私は、WMS の仕様とメッセージの例を見てきました (WFS の場合は少し少なくなりました)。特にこの場合、クライアントを完全に制御できるため、このプロトコルを自分で実装することはそれほど難しくないようです。一般的な WMS または WFS サーバーとして機能する必要があるわけではありません。自分の OpenLayers クライアントを満足させるだけです。
WMS サーバーに必要な 2 つの主な機能は次のとおりです。
事前に作成したレンダリング済みタイルのストアからタイルを提供します (レンダリング エンジンとして OpenStreetMap データと mapnik を使用してタイルを事前レンダリングします。通常の Google マップ スタイルのタイル命名スキームを使用してそれらを保存し、アクセスしますOpenLayers が期待するもの)
ローカルに保存した特定のデータがタイルの上に描画される、これらのタイルの変更されたバージョンをサーバーする機能があります。たとえば、ある「レイヤー」に 10000 個のポイントがあり、別のレイヤーに 10000 個のポリゴンがあるとします。ユーザーがこれらのレイヤーをアクティブにすると、同じベース タイルを提供しますが、これらのタイルを提供するときにレンダリングしますそれらの上にこれらの追加機能を追加し、おそらく単純なキャッシング スキームを実装して、これらの過度にレンダリングされたタイルをしばらく保持します。
私の質問は、これらのことを行う既存のツール (MapServer、GeoServer、TileCache など) があることは知っていますが、実際には、単純な WMS メッセージに応答するだけの作業は少ないと感じています。 Python で自分のタイルにこの追加のオーバードローイングを行い、すべてが正しく投影されていることを確認します。これらのオーバーレイヤーには派手な広い通りや何かを描く必要はなく、単純な線、アイコン、およびおそらくラベルだけです。Pythonのみのソリューションを持つことは、確かに素晴らしくシンプルに聞こえます。
WMS/WFS プロトコルのサポートを拡大したり、より複雑なオーバードローを行う必要がある場合は、その時点で MapServer/GeoServer を挿入するだけでよいと思います。
私が考慮していない落とし穴はありますか?
google-maps - OpenLayers を使用して WMS レイヤー (ポイントまたはポリゴン レイヤー) を Google マップのベース レイヤーと一致させる方法は?
OpenLayers を使用して、カスタム データのオーバーレイ レイヤーを表示するマップのベース レイヤーとして Google マップ レイヤーを使用しようとしています。私のカスタム レイヤーには、Google のレイヤーに関連するオフセットがあり、両方の投影値が異なるようです (Google の投影法は EPSG:900913 ですが、私の場合は EPSG:32721 です)。
この試合を達成する方法についてのアイデアはありますか?
前もって感謝します!
google-maps-api-3 - Google マップ v3 の単一のタイル画像としての WMS
http://www.gisdoctor.com/v3/mapserver.htmlのコードに従って、API v3 を使用して Google マップに WMS を画像としてオーバーレイします。上記のリンクのjsコードは次のとおりです
すべて正常に動作しますが、もちろん、WMS は 256 x 256 タイルとして返されます。それが私が要求したものだからです。ただし、http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/c22837333f9a1812/d410a2a453025b38での議論に従うと、未加工の (単一の) 画像をリクエストしたほうがよいようですマップサーバーから。これにより、サーバーへの負担が軽減されます。いずれにせよ、単一の画像で実験したいのですが、画像のリクエストを適切に作成できません。
具体的には、タイルのサイズを大きなものに変更しました。たとえば、1024 x 1024 のタイルを試しました。タイルの数は減りましたが、返された画像は Google マップのベース レイヤーの境界と一致しませんでした。
私が望むのは、タイルのサイズをまったく指定しないことです。代わりに、現在のマップ サイズよりも 256 ピクセル大きいタイル サイズを動的に計算する必要があります。そうすれば、マップのサイズに関係なく、単一の画像が返されます。また、マップの端に沿って余分な 256 ピクセルを使用して、シームレスなパンが実装されます。
提案?
wpf - WMS をサポートする WPF マップ コントロール
安定していると見なされる WMS をサポートする WPF のマップ コントロールを知っている人はいますか? 私は、WPF 用のマップ コントロールを構築するための最近の取り組みについて調べてみました。
Virtual Earth WPF Controlを見つけました。それは正常に動作しますが、(私が知る限り) Bing Maps に依存しており、私が取り組んでいるプロジェクトには自己ホスト型の WMS サーバーがあります。SharpMapは興味深いものですが、WPF のサポートがありません。WPF SharpMap コントロールは、SharpMap に WPF サポートを追加しますが、SharpMap の今後の変更により、作成者によって非常に不安定であると見なされます。可能であれば、今日はもっと安定したものが必要です。
WMS をサポートする安定した WPF マップ コントロールを知っている人はいますか?
geoserver - Mapstractionを備えたGeoserver
誰かがカスタムホストされたGeoserverのタイルレイヤーまたはWMSレイヤーを使用してMapstractionにベースレイヤーとして配置する方法を知っていますか?
MapStractionには、google、yahoo、microsoft、openlayersなどのベースレイヤープラグインがありますが、残念ながら、geoserverのカスタムオープンレイヤー用のプラグインがありません。そのようなプラグインをきちんと実装する方法を知っている人はいますか?
android - Androidタブレットの地図上にオーバーレイを描画する際にメインスレッド接続でネットワークを適切に処理する
ハニカムでたくさん遊んだ後、NetworkOnMainThreadの問題についてHTTP関連の作業を行うとわかります。httpへの呼び出しを別のAsynTaskに入れることでこれに対処していましたが、これはうまく機能しているようです...
今、私はWMSレイヤーをフェッチして(https経由で)ロードしてマップに配置しようとしています。これは問題なく機能していますが、オーバーレイで描画が呼び出されるたびに(マップを移動するたびに)、別の操作を行っていたため、AsyncTaskの使用方法はそれをカットしていません。
これは、しばらくすると最大スレッド数があったことを意味します。
これに対する正しい修正が何であるかはわかりません。または、私がどのように失敗したかを知っていた方法でそれを行った後、これを正しい方法で設計する方法。何が欠けていますか?別のスレッドでhttpsリクエストを取得する方法はありますか(マップを移動するたびに実行する必要があると思います)。
元の呼び出し:
WMSOverlay extends Overlay
クラスで:
しかし、私のwsmClient.loadMap
中にはhttp呼び出しがあるので、上記のNetworkOnMainThreadで停止します。私の修正はこれでした:
私がそのように使用すると、.execute()
私はこのエラーになります:
openlayers - Openlayers: this.addOptions は関数ではありません
現在、OpenLayers に WMS レイヤーを表示させようとしています。これを行うと、解決できない問題が発生します。これは OpenLayers のバグでさえあるかもしれませんが、追跡システムで適切なバグレポートを作成する前に、間違いが私のものではないことを確認したいと思います。
これは、エラーを生成する最小限の例です。
これによりエラーが発生します
Ubuntu Natty で Firefox 5.0 を使用しています。
対応する mapfile を提供することもできますが、エラーは JavaScript-Problems のように見えるので、誰も要求しない限り、詳細を割愛します。
ご支援とアイデアをありがとうございます。
windows - Mapnik に基づいて WMS サーバーの構築を開始する
Mapnik に基づいて独自の WMS サーバーをセットアップして OSM レイヤーをリクエストしたいのですが、その問題に関するドキュメントがそれほど明確ではありません...たとえば、いくつかの手順を説明している Web ページにアクセスしました。 Mapnik と WMS:
http://wiki.openstreetmap.org/wiki/Mod_mapnik_wms
http://code.google.com/p/mapnik-utils/wiki/WmsInstallGuide
Windows で実行していることを考慮すると、どのパスに従う必要がありますか? または、より明確な手順で目標を達成する方法を誰かに説明してもらえますか? そして、Mapnik を介して OpenStreetMap レイヤーをリクエストするのはどうですか?
前もって感謝します!
authentication - VB6でのWMS認証
WMSリクエストを使用し、xmlHTTPリクエストを使用してレイヤー情報を返す以前に構築された関数を変更しようとしています。
ただし、ユーザー名とパスワードを持つWMSサーバーができました。
これらのクレデンシャルの使用方法に関するアイデア。はリクエスト文字列に含まれるものですか、それともxmlHTTPリクエストを承認する必要がありますか。
ありがとう?!?!