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

OpenLayers JavaScriptクライアントツールキットの使用しているバージョンが3以降の場合に使用します

4
OpenLayers 3でジオメトリの中心を取得
与えられたGeometryOpenLayersを3でオブジェクトどのようにして、その中心を取得しに行きますか? OpenLayersの古いバージョンはgetCentroidメソッドを提供していました。getBounds回避策もありました。しかし、これらはOpenLayers 3では削除されているようです。

1
OpenLayers v3で機能の場所を取得する方法
描画インタラクションまたは変更インタラクションを使用した後、変更または追加された機能を返すリスナーがあります。 例 draw.on('drawend', function (event) { // get the feature var feature = event.element; // ...listen for changes on it logStatus(feature.getId()); }); IDを取得する方法は知っていますが、DBに保存する必要があるため、機能の場所(緯度経度)が必要です。どうすればできますか?APIで見つかりませんでした。

1
OpenLayers外部チェックボックスからレイヤーを非表示/表示
OpenLayersとmapserverを使用して、多くのラスターイメージとクエリ可能なwmsレイヤーを表示しています。すべてが正常に機能し、レイヤーはOpenLayersレイヤースイッチャーでオン/オフを切り替えることができます...しかし、今では外部チェックボックスでレイヤーをオン/オフしたいのですが、これを行う方法がわかりません。 私はJavascriptを少し使い始めました。知っている唯一のことは、チェックレイヤーの値をOpenLayers関数に渡さなければならないことです。今まで、onClickイベントで関数を呼び出そうとしました <input type="checkbox" name="ckeckbox_layer1" onClick="layervisibility(this.checked);"> しかし、チェックボックスをオン/オフすると、openlayers init()関数に実際に配置されているレイヤーが正しくオン/オフになるように、関数 'layervisibility'がどのように見えるかがわかりません。
11 openlayers 

1
OpenLayers 3-座標に基づいて複数の線/パスを描画します
与えられた座標(始点と終点)に基づいて線を描画しようとしています。 Googleは、いくつかの例を見つけましたが、OL2のためである可能性があるため、それらの例は機能しないようです。これが私の最後の手段です。 座標はマーカー配列にあります <!doctype html> <html lang="en"> <head> <link rel="stylesheet" href="css/ol.css" type="text/css"> <style> .map { height: 100%; width: 100%; } </style> <script src="build/ol.js" type="text/javascript"></script> </head> <body> <div id="map" class="map"></div> <script type="text/javascript"> // inicijalizacija mape var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.MapQuest({layer: 'osm'}) // …
10 openlayers 

2
Openlayersで数千のポリゴンを表示する最良の方法は何ですか?
何千ものポリゴンを表示するOpenlayersマップを作成しようとしています。そして、ユーザーがそれぞれをクリックしたときに、メタデータの一部を表示したいと思います。この大規模なデータセットを扱うのは難しいようです。しかし、私はこれを行うための標準的な方法があるかどうかを理解しようとしています。この時点で、私はどちらかをすべきだと思います WMSでポリゴンを表示し、getfeatureinfoを使用する WFSで表示し、Strategy.BBOXでロードし、GetFeatureを使用してmeatadataを取得します。 このデータをすべてマップにロードして速度を上げるための論理的な方法はありませんか?私はこのページを見て、彼らが何をしているかを理解しようとしました:http : //protectedplanet.net/

6
Openlayers v4.0.1はGoogle Maps JavaScript APIをサポートしていますか?
Openlayers(v4.0.1)の最新バージョンがGoogleマップをタイルレイヤーとしてサポートしているかどうかを知りたいです。これに関するドキュメントイオンは見つかりません。OpenlayersがGoogleマップをサポートしていない場合、これを行う方法があるかどうか誰かに教えてもらえますか?

1
OpenLayers 4と3.xの違い[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 OpenLayers 4の変更ログでは、次のように説明されています。 完全に新しいAPIでライブラリを完全に書き直したv2.xからv3.xへの切り替えとは異なり、メジャーバージョンの増分は、ユーザーがアップグレードノートの「重大な変更」セクションに注意を払う必要があることを意味します。 しかし、「バージョン管理のセマンティング」と言う: 互換性のないAPIの変更を行うと、メジャーバージョンが増加します だから、わかりません:OL APIが変更されていないのに、なぜOLメジャーバージョンが4に増えたのですか?誰かがよりよく説明できますか?

3
OpenJayer 3にGeoJSONレイヤーを追加する
mygeojson.jsonという名前のGeoJSONファイルがあり、openstreetmapレイヤーの上にあるOpenLayers 3のレイヤーとして追加します。これまでのところ、ズームなどを含むopenstreetmapの世界を表示できましたが、何らかの理由でmygeojson.jsonを取得できません。 geojsonには多くのポリゴンが含まれており、次のようになります。 { "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, "features": [ { "type": "Feature", "properties": { "DN": 2 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13.559093915055664, 52.545214330050563 ], [ 13.559633429050496, 52.545205649772548 ], [ 13.559633415380715, 52.545214636296755 ], [ 13.559093915055664, 52.545214330050563 ] ] …

2
openlayers 3で円形ポリゴンを作成する方法は?
だから私はこの例を本当に変更したいと思います:http : //openlayers.org/en/v3.0.0/examples/tissot.html?q=circle 問題は、マップに適用しようとしても機能しないことです。おそらく、球状ではないOSMスタイルを使用しているためです。 var map = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), new ol.layer.Vector({ source: vectorSource }) ], renderer: 'canvas', target: 'map', view: new ol.View({ center: ol.proj.transform([2.1833, 41.3833], 'EPSG:4326', 'EPSG:3857'), zoom: 2 }) }); そして質問:円形ポリゴンを作成する方法?ご覧のとおり、2つの選択肢があります。 どういうわけか、私のnoobレベルに基づいて、geom.Circleをgeom.Polygonに変換します。 それを行うために、openlayers 2のような独自の関数を作成します。 OpenLayers.Geometry.Polygon.createRegularPolygon = function(origin、radius、sides、rotation){ var angle = Math.PI …

3
OpenLayers 3レイヤーの可視性の設定
私はOpenlayers 2.12マップをOpenlayers 3にアップグレードして、透明なレイヤーの素晴らしいトランジション効果を活用しようとしています(OL2とLeafletが魅力的にできないもの)。これと私は、OL3が正式にリリースされたときにサイトのアップグレードに遅れをとりたくありません。現在のサイト(OL2.12)では、シンプルなHTMLメニューのチェックボックスを使用して、レイヤーの表示を切り替えています。各レイヤーを配列にプッシュし(OL3が 'layers'と呼ばれるレイヤーの配列を自動的に生成するようになったと思います)、各チェックボックスがこの関数を呼び出します(チェックボックスには、レイヤーの配列番号を表す値が与えられます) ): function layerswitch(evt){ layers[evt.value].setVisibility(evt.checked); } OL3ではこれは機能しなくなり、レイヤーの可視性を設定する方法を詳しく説明する例やドキュメントも見つかりません。

3
OpenLayersを使用してGeoServerのストア内のすべてのレイヤーの名前を取得する方法
OpenLayersを使用して、GeoServerストアのすべてのレイヤーの名前を取得するという厳しい要件があります。ここで投稿を確認しましたが、質問の答えにはなりません。また、GeoServerのREST APIを使用しました。これは、C#、Java、PHPなどの別の言語を使用している場合に理想的です。しかし、私はこれを完全にJavaScriptで実行したいと考えています。 更新:WFS GetCapabilitiesドキュメントで 確認できる内容から、フィルターを使用してWFS GetCapabilitiesリクエストを送信することで、すべてのレイヤーの名前を取得できます。しかし、GetCapabilitiesリクエストにフィルターを組み込むことが可能かどうかはわかりません。また、そのようなフィルターがどのように表示されるかについてもまったくわかりません。 これを達成する方法についてのアドバイスは、高く評価されます。任意の代替アプローチも評価されます。 更新: 私はここで解決策を見つけたと思います。「WFS GetCapabilitiesリクエストをフィルタリングして、特定の名前空間に対応するレイヤーのみを返すことができます。これを行うには、リクエストに次のコードを追加します:namespace = <namespace>"。これが誰かを助けることを願っています。

1
OpenLayers 3:「青い点」選択アイコンを取り除く
デジタル化ツールに取り組んでいます。 現在、4つのボタンがあります。 ポイントを追加 行を追加 ポリゴンを追加 ジオメトリを削除する ユーザーは常に最初にいくつかのジオメトリを描くことから始めます。Drawインタラクション(ol.interaction.Draw)を使用しており、ジオメトリがコレクション(ol.Collection)に追加されています。 ここまでは順調ですね。ここで、ユーザーは描画されたジオメトリのいくつかをクリックして削除することを決定するかもしれません。 次に例を示します。 [ジオメトリを削除]ボタンをクリックすると、次のようになります。 図面を削除して非アクティブにします Selectインタラクションが作成され(ol.interaction.Select)、ジオメトリを選択して削除します 機能が選択されると、そのIDがループ内の他のすべての機能のIDと比較され、正しいIDが見つかると、その機能は削除されます。 ロジックは機能しますが、ホバーすると青い点が表示され、ジオメトリをクリックすることがほぼ不可能になるため、ポイントまたはラインを削除することは非常に困難です。 例えば: 次の黄色の点は、青い点が邪魔になるため削除されません。 カーソルをドットの少し下に移動すると、機能が削除されます。 カーソルが線に沿って移動すると、青い点がカーソルとともに移動するため、線を削除することはほとんど不可能です。 ポリゴンの場合は正常に機能します。青い点はジオメトリのエッジの周りにホバーしたときにのみ表示されますが、それを無視して塗りつぶし内をクリックすると、ジオメトリも削除されます。 その青い点の外観を変更するにはどうすればよいですか?完全に破棄しても大丈夫です。Select Interactionにスタイルを追加しようとしましたが、効果がありません。青い点の上に別のスタイルを追加するだけです。 編集:これを解決する方法は、おそらく、その青い点に目を通すことでしょう。クリック/選択して青い点の背後にあるものを確認する方法はありますか?


1
OpenLayers 3変更終了イベント
変更後にジオメトリデータを保存したいので、フィーチャの変更が完了した後に発生するイベントが必要です。私はこの投稿から次のものを使用します: リスナー変更インタラクション var selected_features = select.getFeatures(); // when a feature is selected... selected_features.on('add', function (event) { // get the feature var feature = event.element; feature.on("change", function (event) { logStatus(feature.getId() + " has been changed!\n"); }); }); しかし、このリスナーは1回の変更で何度も起動します。「on」の代わりに「once」を使用している場合、最初の小さな変更のみを起動し、それ以上は起動しないため、実際の変更は保存されません。「changeend」や「modifyend」など、機能の変更が完了したときに起動するものが必要です。何を使用できますか?

1
Openlayers 3でPostgis GeoJSONを使用する簡単な方法はありますか
Jason Sanford(https://github.com/JasonSanford)のgoogle-vector-layersとleaflet-vector-layers を使用して、Postgis-databasesからのデータのカスタマイズされたポップアップを簡単に表示、スタイル設定、および追加しました。これは、Bryan McBrideのPHP-Database-GeoJSONの修正バージョンと組み合わせて機能します。 Openlayers 3での使用に匹敵するものはありませんか?私はそのようなライブラリを書くためのプログラミングスキルを持っていないことを認めなければなりません。誰かが同等のコードについて知っているかもしれません。多くのグーグル操作を行った後、特定の問題に対する多くの答えを見つけ、AjaxとboundingBox戦略を使用してGeoJSONをロードする方法、ベクターレイヤーのスタイルを設定してポップアップを追加する方法を実装しましたが、まだ簡単な方法がありませんこれらすべてを組み合わせる方法の方法。 PostGis> GeoJSON> Openlayers 3(スタイリングとポップアップによる機能の表示を含む)はかなり標準化された方法であると思うので、今日まで見つからなかった既存のソリューションがあるのではないかと思います。

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