タグ付けされた質問 「openlayers-2」

OpenLayers JavaScriptクライアントツールキットのバージョン2.xを使用している場合は、このタグを使用します。

4
OpenLayersを使用した日付ラインの折れ線の分割
数年前、私は投稿の周り日付変更線ラップをし、@jdeoliveは、私は機能を分割提案日付変更線で。だから私は試しました。 日付変更線でsplitWithを使用して衛星トラックを分割しようとすると、戻りnullます。グリニッジラインで分割すると期待どおりの結果が得られるため、正しく分割していることがわかります。 OpenLayersを使用して、プログラムでLinestringを日付ラインに沿って適切に分割する方法を知っている人はいますか?もしあれば、サンプルコードを探します。 私は試しましたwrapDateLineが、ベクターレイヤーが次のようになっているにもかかわらず、ベクターレイヤーで動作していないようです: vectorLayer = new OpenLayers.Layer.Vector("GroundTracks", { renderers: ['Canvas', 'VML'], wrapDateLine: true}); // <-- shoud be wraping. これが私のコードです: var features = []; var format = new OpenLayers.Format.WKT({ 'internalProjection': map.baseLayer.projection, 'externalProjection': prjGeographic }); var satTrack = format.read("LINESTRING (95.538611 13.286511, 94.730711 16.908947, 93.901095 20.528750, 93.043594 24.145177, 92.150978 27.757436, 91.214579 31.364666, …

7
ベースOSMおよびGeoserver WMSレイヤーでOpenlayerを印刷するにはどうすればよいですか?
ユーザーがいくつかのレイヤーを開いたら、印刷したいマップがあります。レイヤーはジオサーバーwmsで、ベースレイヤーはOSMです。 geoserverに印刷モジュールがあることを知っています(geoserver / pdf / info.json?var = printCapabilitiesから返信があるため、インストールされて機能しています) 私が理解していないのは、それを使用して現在のマップを表示レイヤーで印刷する方法です。 私はGeoExtの例(mapfish)を見てきましたが、理解に役立ちませんでした。 更新1: 次のURLをコードで生成しました。 http://77.235.53.170/geoserver/pdf/print.pdf?spec={%22units%22:%22degrees%22,%22srs%22:%22EPSG:4326%22,%22layout%22:%22A4%22,%22dpi%22:%22300%22,%22mapTitle%22:%22This%20is%20the%20map%20title%22,%22comment%22:%22This%20is%20the%20map%20comment%22,%22resourcesUrl%22:%20%22http://77.235.53.170/img%22,%22layers%22:[{%22baseURL%22:%22http://77.235.53.170/geoserver/Lehavim/wms%22,%22opacity%22:1,%22singleTile%22:true,%22type%22:%22WMS%22,%22layers%22:[%22%D7%A7%D7%95%20%D7%9E%D7%99%D7%9D%22],%22format%22:%22image/jpeg%22,%22styles%22:[%22%22]}],%22pages%22:[{%22center%22:[3875254.1134954,3680894.557955],%22scale%22:32000,%22rotation%22:0}]} 空のPDF(タイトルのみ)を取得しています...何が問題なのでしょうか?

1
モバイルハイブリッドアプリ内でオフラインで地図を表示する方法
自分の地図データを表示するAndroidとiPhoneの両方のデバイスで実行するモバイルハイブリッドアプリケーションを開発したいと思います。必要なデータを含むSHPファイルがあります。オンラインで地図データを読み込んで提供するためのGeoserverとPostGISがあります。これまでのところすべてが順調です。 私の問題は、地図データをオフラインで表示するための正しいチュートリアルをまだ理解していないことです。私はこのウェブサイトでここで多くの答えを読みましたが、それらのどれも解決していないようです(私の問題の理解に従って)。 目標は、地図上にインタレストポイントを表示することです。オフライン。一部のインタレストポイントには住所がありません。Lon/ Latのみです。これらの要件について説明します。 地図データとコンテンツをオフラインでユーザーのデバイスに提供する方法 ユーザーに現在の場所から目的地に移動するためのルーティングオプションを提供する方法 アプリ内でWordPress CMSからコンテンツデータを追加する方法 (JSON?GeoJSON?GeoRSS?) 多くのタイルサービスと要件を達成するための多くのアプローチを探し求めてきましたが、まだ正しい組み合わせを見つけていません。 アプリの開発には、PhoneGap XDK、Eclipse ADTを使用しています。また、モバイルデバイスで地図を表示するために、OpenLayersモバイルを使用しています。 あなたの提案やウォークスルーを楽しみにしています。 よろしくお願いします

2
Openlayersで機能の選択を解除するにはどうすればよいですか?
次の行を使用して、マップ上で選択されたフィーチャを識別できます。 vector_layer.selectedFeatures スタンドアロン関数(イベントハンドラーではない)を使用して、この機能の選択を解除できるようにしたいと思います。私は関数unselect()を使用してみましたがunselectAll()失敗しましたが、このアプローチの例を見つけることができません。 選択したオブジェクトをクリックすると、に使用できることを認識していますunselect。この場合、プログラムによる解決策が必要です。

2
オープンソースのPython / PostGISプロトタイプに最適な設計
Apacheを介して配信されるデータ集約型のWebアプリケーションを作成しています。私の質問は、複数のオプションがある場合に、処理を最適に配置する方法についてです。 私は自由にOpenLayers / JQuery / Javascript、PostGIS / Postgresql(pgsql付き)、python / psycopg2、phpを持っています。 データベースには約300万行が含まれており、プロトタイプは現在次のように実行されます。 ユーザーがOpenLayersウィンドウのポイントをクリックした 座標はAJAXリクエストとしてサーバー上のPython関数に送信されます 現在、私のアプリケーションはステートレスです Pythonのpsycopg2を使用してpgsqlストアドプロシージャを呼び出し、大量のWKT値(およびデータフィールド)がpythonモジュールに返されます。 データフィールドは、PythonでWKTレコードを次のように分類するために使用されます。すべてのWKT値は、5つのグループのいずれかに分類されます。WKT値の約1%が実際に変更されます。 WKTの5つのセット/グループは、5つの異なるポリゴンを作成するためにバッファリングされます。現在、データベース内のストアドプロシージャを呼び出してこれを行っています。これは今度はST_BUFFERを使用するだけです。(私はShapelyの使用を検討しましたが、どちらの場合にもGEOSライブラリが使用されるため、パフォーマンス上の利点があるかどうかはわかりません...) 最後に、5つのWKTテキスト値がJSON文字列にラップされ、OpenLayersに返されて5つのレイヤーとしてレンダリングされます。 ボトルネックは、最初の空間検索と最後のバッファリング段階であることがわかりました。 質問は次のとおりだと思います: 物事を整理するより良い方法はありますか?たとえば、すべてのデータ処理をPostgreSQLで(たとえばカーソルを使用して)実行する必要がありますが、これはメンテナンスとパフォーマンスの点で優れているでしょうか?長いWKT文字列をWebクライアントに渡さないようにするには、タイルサーバーを使用する方がよいでしょうか。どのように対処しますか?


1
OpenLayersとMapboxの違いは何ですか?
MapBoxを使用してWebGISアプリケーションを開発するためにこのタイルミルを見つけました。完全なGISアーキテクチャを開発するので、OpenLayersよりもどのように優れているのか、またどの方法を選択するのがよいかを開発する必要があるかどうかを知りたいと思いました。

5
OpenLayersで2つの異なるプロジェクション(Spherical MercatorおよびWGS84)のベースレイヤーを使用する
2つの異なるプロジェクションを持つベースレイヤーを追加するにはどうすればよいですか? 異なるプロジェクション(EPSG:4326)のオーバーレイヤーを追加しましたが、さまざまなプロジェクションのベースレイヤーを追加する必要があります グーグルマップ EPSG:4326プロジェクションのベクターレイヤー Googleマップですべてが正常に表示されますが、ベースレイヤーをEPSG:4326レイヤーに切り替えると、すべてが白になります。 window.onload = function init(){ var lon = 84; var lat = 28; var zoom = 8; var url = "http://10.6.7.6/geoserver/wms"; var mapControls = [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.LayerSwitcher({'ascending':false}), new OpenLayers.Control.ScaleLine(), new OpenLayers.Control.MousePosition(), new OpenLayers.Control.OverviewMap(), new OpenLayers.Control.KeyboardDefaults() ]; var map = new OpenLayers.Map( 'map', …

3
オープンレイヤーでレーダーデータをアニメーション化する最良の方法
地図にレーダーデータを表示するOpenLayersを使用するプロジェクトがあります。レーダーデータ自体は、それぞれが6つの可能な色の1つで塗りつぶされたポリゴンの集まりです。目標は、地図上でレーダーをアニメーション化することです。各ファイルには一定時間のレーダーデータが含まれており、ファイルは約5分間隔で区切られているため、現在のアプローチではすべてのファイルをループして1つずつ新しい個別のレイヤーに読み込みます。各レイヤーが作成されると、その可視性はfalseに設定され、マップに追加されます。次に、1つのレイヤーの表示をオンにし、前のレイヤーの表示をオフにするタイマーを使用して、レイヤーをアニメーション化します。現在、レイヤーはすべてベクターレイヤーであり、データはKMLファイルから読み込まれますが、データファイルは、このプロジェクトに最適なほとんどすべての形式にすることができます。 このアプローチの問題は、かなり長い時間(約3時間程度)のデータ(約36レイヤーに相当)に達すると、メモリー消費がかなり高くなる(約250MB)ことです。最終製品は、1つのループで最大18時間のデータを処理できると想定されています。上記の数値に基づくと、アニメーションのためだけに1 GB以上のメモリが必要であり、ブラウザをクラッシュさせるか、少なくとも非常に遅くなります。 レイヤーごとにWMSレイヤーを使用して同じことを試みましたが、再描画が遅すぎ(アニメーションは100ミリ秒ごとにレイヤーを変更しました)、メモリの消費量はベクターバージョンよりも優れていませんでした。 私はこれを行う方法のいくつかの例を見つけるためにネットを精査しましたが、これまでのところ手ぶらで手にしています。これを行う方法について何か提案はありますか?私は何週間もこれに立ち往生していて、答えが見えないので、この時点であなたが持っているアイデアを取り上げます。

1
DrawFeatureコントロールによって作成されたフィーチャーのスタイルを設定する方法は?
私はこのチュートリアルに従っています:http : //workshop.pgrouting.org/chapters/geoext_client.html#select-the-start-and-final-destination これには、次のコードサンプルで定義されているOpenlayers.Control.DrawFeaturesコントロールが含まれています。また、著者が「開始点に特別なスタイルを適用したい場合は、ここでこれを実行する必要があります」とコメントしている行も確認できます。問題は、この設定でスタイルを適用する方法がわからず、この方法でDrawFeaturesコントロールを使用した例が見つからないことです。 このDrawFeaturesコントロールを使用して、始点で終点とは異なるスタイルを使用するにはどうすればよいですか? DrawPoints = OpenLayers.Class(OpenLayers.Control.DrawFeature, { // this control is active by default autoActivate: true, initialize: function(layer, options) { // only points can be drawn var handler = OpenLayers.Handler.Point; OpenLayers.Control.DrawFeature.prototype.initialize.apply( this, [layer, handler, options] ); }, drawFeature: function(geometry) { OpenLayers.Control.DrawFeature.prototype.drawFeature.apply( this, arguments ); if (this.layer.features.length == 1) …


2
既存の選択を失わずにレイヤーをSelectFeatureに追加する方法は?
複数のレイヤーでの選択にOpenLayers.Control.SelectFeatureを使用しています。ただし、setLayer()を使用してレイヤーを追加すると、他のレイヤーでの選択が失われます。 誰でもこれを回避する方法を知っていますか?SelectFeatureコントロールにレイヤーを追加するときに、他のレイヤーの既存の選択を保持したいと思います。 次に例を示します。 私の例 更新: これはAPIの一部であることを認識しています。しかし、私は回避策を探しています。 /** * APIMethod: setLayer * Attach a new layer to the control, overriding any existing layers. * * Parameters: * layers - Array of {<OpenLayers.Layer.Vector>} or a single * {<OpenLayers.Layer.Vector>} */ setLayer: function(layers) { var isActive = this.active; this.unselectAll(); this.deactivate(); if(this.layers) { this.layer.destroy(); this.layers …

2
既に表示されているFeature.Vectorの外観を変更する方法は?
Pointオブジェクトから一連のFeature.Vectorsを作成し、それらにスタイルを割り当てました。次に、機能の1つの外観をリアルタイムで動的に変更します。たとえば、赤から青に変更します。(私は機能の上にホバーしていません。)スタイルを変更してから、レイヤーに対してrefresh()を実行したり、redraw()などを実行したりしましたが、何も起こらないか、機能が消えてしまいます。助言がありますか?ありがとう。

3
ストリートビューオーバーレイを使用したOpenLayers
OpenLayers Webアプリにストリートビュー機能を追加しようとしています。ストリートビューの可用性を示すオーバーレイをマップ自体に追加したいと思います。ここで正常に実行される例を確認しましたが、自分のソリューションでコードを機能させることができません。具体的には: var layer = new OpenLayers.Layer.Google("Google Street", {sphericalMercator: true}); layer.mapObject.addOverlay(new GStreetviewOverlay()); エラーになります: layer.mapObject is null 誰かが私が間違っているかもしれないという考えを持っていますか?その場合、どうすればこれを修正できますか?

4
OpenLayersでのベースレイヤーの再投影
ArcGIS Server RESTサービスとして公開された北米のいくつかの場所のベクター/トポ/画像タイルマップがあります。これらのマップ(A)はEPSG:26912投影に基づいています。次に、これらをOpenLayers Webアプリのベースマップとして使用します。さらに、OpenStreetmap、Googleマップ、ESRIなど、他のベースマップソース(B)も使用したいと思います。これらのマップのほとんどはEPSG:900913にあります。 OpenLayersマップコンポーネントへのベースマップレイヤー、グループAとグループBは正しくオーバーレイされません。つまり、それらは別々のマップとして表示されます。 これは投影に関連していることを知っており、proj4jsでいくつかのコードが必要になる可能性がありますが、初心者として、何から始めればよいのか本当にわかりません。 基本的に、OSM / Googleマップを全世界のベースマップとしてTier 1に配置し、北米の一部の場所のEPSG:26912ベースマップをTier 2に配置し、他のWMSまたはWFSを最上層に配置します。 EPSG:26912をEPSG:900913またはその逆に変換する必要がありますか?ベースプロジェクションとしてEPSG:900913を使用する必要があると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.