Openlayers 3マップのベクターレイヤーに矢印を描くにはどうしたらいいですか? 私はcanvaselementを使って矢印を作成しようとしましたが、ol3マップ上に描画する方法はわかりません。openlayers3で画像を使わずに矢印を描く
1
A
答えて
3
キャンバス要素は必要ありません。矢印の例をOpenlayers siteから取得し、アイコンの代わりに2つのカスタムLineString要素を追加することができます。この例では、すでにラジアン単位の回転角度とコードを追加する必要があるイベントがあります。
がうまくいけば、次のスニペットは、トリックん:あなたはhttp://openlayers.org/en/latest/examples/line-arrows.htmlを
var source = new ol.source.Vector();
var styleFunction = function (feature) {
var geometry = feature.getGeometry();
var styles = [
// linestring
new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#ffcc33',
width: 2
})
})
];
geometry.forEachSegment(function (start, end) {
var dx = end[0] - start[0];
var dy = end[1] - start[1];
var rotation = Math.atan2(dy, dx);
var lineStr1 = new ol.geom.LineString([end, [end[0] - 200000, end[1] + 200000]]);
lineStr1.rotate(rotation, end);
var lineStr2 = new ol.geom.LineString([end, [end[0] - 200000, end[1] - 200000]]);
lineStr2.rotate(rotation, end);
var stroke = new ol.style.Stroke({
color: 'green',
width: 1
});
styles.push(new ol.style.Style({
geometry: lineStr1,
stroke: stroke
}));
styles.push(new ol.style.Style({
geometry: lineStr2,
stroke: stroke
}));
});
return styles;
};
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: source,
style: styleFunction
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 3
})
});
map.addInteraction(new ol.interaction.Draw({
source: source,
type: ('LineString')
}));
<script src="https://openlayers.org/en/v3.20.1/build/ol.js"></script>
<link href="https://openlayers.org/en/v3.20.1/css/ol.css" rel="stylesheet"/>
<div id="map" class="map" tabindex="0"></div>
+0
ありがとうイカルス!これは私を助けてくれました。このソリューションを使用して、私はダブルラインの矢印を作ろうとしている、私はほぼ達成している、二重線の部分の角度だけが残っている。もしそれができなければ、私は再びあなたをキャッチします! ;) – user6730740
関連する問題
- 1. opencv pythonを使って画像に両面矢印を描く
- 2. Python Tkinter:ラベル内に矢印を描く
- 3. リスト間に矢印を描く
- 4. VB6の線オブジェクトに矢印を描く
- 5. OpenLayersを3:マルチライン上の描画矢印
- 6. デルファイの曲線矢印を描く
- 7. HTMLキャンバス - 曲線の矢印を描く
- 8. 矢印を描く方法JavaFX? (ペイン)
- 9. fabricJSキャンバスで矢印が正しく描画されない
- 10. d3.jsを使用して矢印で線を描く方法
- 11. Pythonでax.quiverを使用して2D矢印を描く
- 12. D3の描画矢印のヒント
- 13. CSSを使用して右矢印を描く
- 14. 破線の矢印を描くには?私はこのような矢印描きたい
- 15. パッケージに基づいて3Dで矢印を描くrgl
- 16. ユーザーコントロールで画像を描く
- 17. 矢印の画像のみのコードネームバックコマンド
- 18. HTML div矢印と画像のボックス
- 19. processing.exeに半透明の矢印を描くには
- 20. C#を使用してデフォルトの矢印の代わりにマウスポインタとして画像を使用するには?
- 21. MATLABで3D矢印/ベクトルを描く方法は?
- 22. iOSスワイプパスの後に矢印付きスイングフィンガーの線を描く
- 23. 2つのフレックスアイテムの間に矢印を描く
- 24. 2つのオブジェクトの間にHTML5 Canvasの矢印を描く
- 25. matplotlibの図に直接矢印を描く
- 26. 線の勾配を使用して線の終点に矢印を描く
- 27. 矢印のクリックでアニメーション化されたベクトル描画可能
- 28. div内の矢印キーでjSで画像を移動する
- 29. jquery mobileでキャンバスに画像を描く
- 30. CSS:スライドショーの矢印(画像)を内側の要素の上に置く
見たことがありますか?ただし、もう少し詳しいコンテキストを提供する必要があります。あなたの質問から、点や線を矢印でスタイルするかどうかは明らかではありません。 – ahocevar
私はそのリンクを見ました。 「https://openlayers.org/ja/v3.20.1/examples/data/arrow.png」を使用しています。しかし、私はどんなイメージ(例えばここにpng)を使用したくない。私は矢印でスタイルを変更したい。 – user6730740
キャンバス要素を使用することは可能な解決策ですか?しかし、ol.interaction.Drawを使ってopenlayers 3にcanvas要素を描画する方法は? – user6730740