序文このシリーズの記事では、主に次の内容を含む、シンプルなリアルタイム ポジショニングの例を紹介します。
達成された効果: 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 クラスターを構築し、セッション共有を実現する
1. アクセス頻度、同時接続、ダウンロード速度を制限するために使用されるモジュールと命令の概要ngx...
目次リストレンダリングキーの原理と機能主要原則の分析キーの役割要約するリストレンダリングキーの原理と...
JavaScript は現在、毎年新しいバージョンがリリースされており、より便利で効率的な新しい演算...
誰もがこんな気持ちになったことがあると思います。30 秒の広告が入った動画を見ると、とても不快に感じ...
1. 遷移属性の理解1. transition 属性は、次の 4 つの遷移プロパティを設定するために...
まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...
まず、Docker とは何かを理解しましょう。 Docker は、アプリケーションをデプロイするため...
Vue 3.x プロジェクトの作成 npm init @vitejs/app my-vue-app ...
1. はじめにまず、1 台のマシンで複数のインスタンスを使用する理由という質問に答える必要があります...
1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...
今日はサーバーにログインして、データベース内のいくつかのものを変更する準備をしました。しかし、パスワ...
目次1. 基本的な使い方2. 注意すべき点3. マルチレベルルーティング(マルチレベルルーティング)...
1. はじめにこの記事では、主に Linux システムでコマンドライン ツールを使用してファイルを...
フレックス レイアウトは間違いなくシンプルで使いやすいです。レイアウトをよりシンプルかつ高速にします...
目次1. 基本理論1.1 取引1.2 分散トランザクション2. 分散トランザクションソリューション2...