1つ以上の機能をロードする <テンプレート> <div id="map" style="幅: 100vw; 高さ: 100vh"></div> </テンプレート> <スクリプト> "ol/ol.css"をインポートします。 "ol/layer/Tile" から TileLayer をインポートします。 「ol/layer/Vector」から VectorLayer をインポートします。 「ol/source/Vector」から VectorSource をインポートします。 「ol/source/XYZ」からXYZをインポートします。 "ol" から { Map, View, Feature, ol } をインポートします。 "ol/style" から { Style、Stroke、Fill } をインポートします。 "ol/geom" から {Polygon、MultiPolygon } をインポートします。 「@/assets/chengdu.json」から areaGeo をインポートします。 エクスポートデフォルト{ データ() { 戻る { マップ: {}, エリアレイヤー: {}, }; }, マウント() { this.initMap(); //マップを初期化するメソッド this.addArea(areaGeo); //エリア レイヤーを追加するメソッド this.pointMove(); クリックするとフィーチャーが取得されます。 }, メソッド: { ポイント移動() { // ベクター要素上のマウスのスタイルを設定します this.map.on("pointermove", (e) => { const isHover = this.map.hasFeatureAtPixel(e.pixel); this.map.getTargetElement().style.cursor = isHover ? "ポインター" : ""; }); }, クリックによるフィーチャ取得() { this.map.on("クリック", (e) => { フィーチャを this.map.getFeaturesAtPixel(e.pixel); に設定します。 this.map.getView().fit(features[0].getGeometry(), { 期間: 1500、 パディング: [100, 100, 100, 100], }); }); }, /** * エリアを設定 */ エリアを追加します(geo = {}) { Object.keys(geo).length == 0 && geo.features.length == 0 の場合、戻り値は次のようになります。 // レイヤーを設定する this.areaLayer = new VectorLayer({ ソース: 新しい VectorSource({ 特徴: []、 })、 }); //レイヤーを追加します this.map.addLayer(this.areaLayer); features = geo.features; とします。 for (let i in 機能) { areaFeature を {} とします。 if (features[i].geometry.type == "MultiPolygon") { エリアフィーチャ = 新しいフィーチャ({ ジオメトリ: 新しい MultiPolygon(features[i].geometry.coordinates)、 }); } そうでない場合 (features[i].geometry.type == "Polygon") { エリアフィーチャ = 新しいフィーチャ({ ジオメトリ: 新しいポリゴン(features[i].geometry.coordinates)、 }); } エリアフィーチャー.setStyle() 新しいスタイル({ 塗りつぶし: 新しい塗りつぶし({ 色: "#4e98f444" }), ストローク: 新しいストローク({ 幅: 3, 色: [71, 137, 227, 1], })、 }) ); エリアフィーチャーにプロパティを設定します。 this.areaLayer.getSource().addFeature(areaFeature); } }, /** * マップを初期化する */ initMap() { this.map = 新しいマップ({ ターゲット: "マップ"、 レイヤー: 新しいタイルレイヤー({ ソース: 新しいXYZ({ URL: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}", })、 })、 ]、 ビュー: 新しいビュー({ 投影: "EPSG:4326", 中央: [103, 31], ズーム: 7, })、 }); }, }, }; </スクリプト> Vue+Openlayer が geojson を動的にロードする方法についての記事はこれで終わりです。Vue Openlayer が geojson をロードする関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明
目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...
MySQL サービスを使用する場合、通常の状況では、MySQL のタイムアウト設定は 8 時間 (2...
この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...
序文: MySQL で最も一般的に使用されるアーキテクチャは、マスター スレーブ レプリケーションで...
目次序文1. 現在のgccバージョン2. gccをインストールする3.gmpのインストール4.MPF...
最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...
Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...
最近、nginx-ingress-controller のアプリケーションについて説明した公開アカウ...
MySQL_8.0.2のオフラインインストール方法は参考までに。具体的な内容は以下のとおりです。次の...
データの挿入テーブル名(列名1、列名2、列名3)の値(値1、値2、値3)に挿入します。ユーザーに(u...
目次1. プロジェクト統合1. CDNインポート方法: 2. 箱の梱包を確認する3. 迅速な箱詰め4...
ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...
設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...
<br />今日、新しくなった ChinaUI.com の Web サイトを見たのですが...
よくある質問ユーザー ''@'localhost' によるデータベー...