序文このシリーズの記事では、主に次の内容を含む、シンプルなリアルタイム ポジショニングの例を紹介します。
達成された効果: 1. ラベルスタイルを定義するvar image = 新しいCircleStyle({ 半径: 5, 塗りつぶし: 新しい塗りつぶし({ 色: "rgba(255, 0, 0, 1)" })、 ストローク: 新しいストローク({ 色: "赤", 幅: 1 }) }); var スタイル = { ポイント: 新しいスタイル({ 画像: 画像 }) }; var styleFunction = function(feature) { スタイル[feature.getGeometry().getType()]を返します。 }; 2. GeoJSONデータのシミュレーションvar geojsonObject = { タイプ: "FeatureCollection", 特徴: [ { タイプ: "機能", ジオメトリ: タイプ: "ポイント"、 座標: [0, 0] } } //ここにさらに機能を追加できます ] }; 3. VerctorLayerを作成する// GeoJSON を読み取り、vectorSource のデータソースとして使用します var vectorSource = new VectorSource({ 機能: 新しい GeoJSON().readFeatures(geojsonObject) }); var ベクトルレイヤー = 新しいベクトルレイヤー({ ソース: vectorSource、 スタイル: スタイル関数 }); 4. マップを作成するマウント() { this.map = 新しいマップ({ レイヤー: 新しいタイルレイヤー({ ソース: 新しい OSM() })、 ベクトルレイヤー ]、 ターゲット: "マップ"、 ビュー: 新しいビュー({ 中心: [0, 0], ズーム: 2 }) }); //スケジュールされたタスクを設定し、モバイル ラベル メソッドを呼び出します setInterval(this.translate, 500); }, 5. リアルタイムの動きをシミュレートするメソッド: { 翻訳する() { //ラベルをトラバースして座標位置を変更するvectorSource.forEachFeature(function(f) { console.log("翻訳"); //座標の増分をランダムに生成します(ここでは座標の絶対値ではありません!!!) var x = Math.random() * 1000000; var y = Math.random() * 1000000; f.getGeometry().translate(x, y); }); } } 要約する上記は、シミュレートされた GeoJSON オブジェクトを通じてラベルを表示し、スケジュールされたタスクを通じてラベルの位置の変更をシミュレートする、シンプルなリアルタイム ポジショニング フロントエンドの例です。次の記事では、Java サーバーを使用して位置データを提供して、リアルタイムの測位システムを完全にシミュレートします。 <テンプレート> <div> <span>こんにちは、マップ</span> <div id="map" class="map"></div> </div> </テンプレート> <script lang="ts"> "ol/ol.css"をインポートします。 「ol/format/GeoJSON」からGeoJSONをインポートします。 「ol/Map」からマップをインポートします。 「ol/View」からViewをインポートします。 "ol/style" から { Circle を CircleStyle、Fill、Stroke、Style としてインポートします。 "ol/source" から { OSM、Vector を VectorSource としてインポートします。 "ol/layer" から { Tile を TileLayer として、Vector を VectorLayer として } をインポートします。 「vue」からVueをインポートします。 var image = 新しいCircleStyle({ 半径: 5, 塗りつぶし: 新しい塗りつぶし({ 色: "rgba(255, 0, 0, 1)" })、 ストローク: 新しいストローク({ 色: "赤", 幅: 1 }) }); var スタイル = { ポイント: 新しいスタイル({ 画像: 画像 }) }; var styleFunction = function(feature) { スタイル[feature.getGeometry().getType()]を返します。 }; var geojsonObject = { タイプ: "FeatureCollection", 特徴: [ { タイプ: "機能", ジオメトリ: タイプ: "ポイント"、 座標: [0, 0] } } ] }; var ベクトルソース = 新しい ベクトルソース({ 機能: 新しい GeoJSON().readFeatures(geojsonObject) }); var ベクトルレイヤー = 新しいベクトルレイヤー({ ソース: vectorSource、 スタイル: スタイル関数 }); デフォルトのエクスポート Vue.extend({ データ() { 戻る { マップ: {} }; }, マウント() { this.map = 新しいマップ({ レイヤー: 新しいタイルレイヤー({ ソース: 新しい OSM() })、 ベクトルレイヤー ]、 ターゲット: "マップ"、 ビュー: 新しいビュー({ 中心: [0, 0], ズーム: 2 }) }); 間隔を 500 に設定します。 }, メソッド: { 翻訳する() { ベクトルソース.forEachFeature(関数(f) { console.log("翻訳"); var x = Math.random() * 1000000; var y = Math.random() * 1000000; f.getGeometry().translate(x, y); }); } } }); </スクリプト> <スタイル> .map { 幅: 100%; 高さ: 600px; } </スタイル> これで、VUE + OPENLAYERS によるリアルタイム位置決め機能の実現に関するこの記事は終了です。VUE OPENLAYERS 位置決めに関する関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Nginx 経由で Tomcat9 クラスターを構築し、セッション共有を実現する
随分前に「Patterns for Sign Up & Ramp Up」を読み終えました。今...
フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲...
ある読者から連絡があり、ダウンロードが終了し、操作がまだ開始されていないのに、なぜ Tomcat の...
目次基本的な手順と使用方法行コンポーネントの分析レンダリング機能ソースコード分析Col成分の分析コン...
目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...
1.ピクセルpx はピクセルの略語で、画面解像度に対する相対的な長さの単位です。 2. えむ参照は親...
インライン形式<colgroup>...</colgroup>属性名 属性値...
WebRTC は、Web Real-Time Communication の略で、Web リアルタイ...
Dockerの概要Docker はオープンソースのソフトウェア展開ソリューションです。 Docker...
大画面のデジタル スクロール効果は、最近の作業における大画面 UI ダイアグラムから生まれました。U...
MySQL のCAST()およびCONVERT()関数を使用すると、ある型の値を取得し、別の型の値を...
目次序文1. インストール1.公式サイトからダウンロード2. 構成を作成する3. MySQLを初期化...
元の構成: http { ...... limit_conn_zone $binary_remote...
目次制御されていないコンポーネント制御コンポーネント知らせ結論は制御されていないコンポーネントフォー...
また、多くの場合、メンテナンスのために Web サイトを少なくとも数分間オフラインにする必要がありま...