024: Mapbox GL が画像ファイルを読み込みます

ここに画像の説明を挿入

No.024

クリックして列ディレクトリを表示


この例の目的は、vue+mapbox でイメージ イメージ ファイルをロードする方法を紹介し、デモンストレーションすることです。画像ソース。「url」値には画像の場所が含まれます。'coordinates' 配列には、左上、右上、右下、左下の時計回りの順序でリストされた [経度、緯度] の画像コーナーのペアが含まれています。

以下の vue+mapbox ソース コードを直接コピーし、2 分で実行すると効果が得られます。

効果の例

設定方法

1) 基本設定を表示: https://xiaozhuanlan.com/topic/9327810546
または以下も表示: https://dajianshi.blog.csdn.net/article/details/130108713
2) 上記のソース コードをsrc/に貼り付けます。 views/Home.vuenpm run serveを実行できます。

サンプルソースコード (全87行)



/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: [email protected]
* @First published in xiaozhuanlan.com
* @Second published in CSDN
* @First published time: 2023-04-23
*/
<template>
	<div class="container">
		<h3>vue+mapbox:加载image图像文件</h3>
		<p>大剑师兰特, 还是大剑师兰特</p>
		<h4>
			<el-button type="primary" size="mini" @click="addImage()">加载图像</el-button>
		</h4>
		<div id="vue-mapbox"></div>
	</div>
</template>

<script>
	import mapboxgl from 'mapbox-gl'; // or "const mapboxgl = require('mapbox-gl');"
	import 'mapbox-gl/dist/mapbox-gl.css';
	import '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css'
	export default {
    
    
		name: 'mapboxMap',
		data() {
    
    
			return {
    
    
				map: null,
			}
		},
		mounted() {
    
    
			this.initMap();
		},
		methods: {
    
    
			addImage() {
    
    
				this.map.addSource('myImage', {
    
    
					'type': 'image',
					'url': '/data/icon.png',
					'coordinates': [
					[-101, 32],
					[-100, 32],
					[-100, 31],
					[-101, 31]
					]
				});

				this.map.addLayer({
    
    
						'id': 'image11',
						'type': 'raster',
						'source': 'myImage',
					},
				);


			},

			initMap() {
    
    
				mapboxgl.accessToken = this.$root.mapboxToken; //自己的token
				this.map = new mapboxgl.Map({
    
    
					container: 'vue-mapbox', // container ID
					style: 'mapbox://styles/mapbox/streets-v12', // style URL
					center: [-100, 32], // starting position [lng, lat]
					zoom: 5, // starting zoom
					attributionControl: false, //停用             
				});

			}
		}
	}
</script>
<style>
	.container {
    
    
		width: 840px;
		height: 600px;
		margin: 50px auto;
		border: 1px solid #42B983;
		position: relative;
	}

	#vue-mapbox {
    
    
		width: 800px;
		height: 430px;
		margin: 0 auto;
		border: 1px solid #42B983;
		position: relative;
	}
</style>

関連 API リファレンス:

https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/#image

列の目標

vue と mapbox の共同テクノロジ スタックの管理下で、このコラムでは効果的なソース コードの例を提供します。コラムは常に増え続けており、現在の目標は次の例を作成することです
(1) さまざまなマップの読み込み例を提供します: Baidu、Gaode、google、bing、OSM、stamen、maptiler、Tiantu、mapbox など。
(2) 提供します。マップ コントロールの表示例: 縮尺、イーグル アイ、カスタム著作権、マップの回転、ズーム マップ、ズーム スライダー、全画面表示など (3) さまざまなデータの読み込み例を提供: geojson、JSON、KML、WKT、WMTS、
SHP 、WKB、GPX、CSV、MVT、ジオサーバー データなど
(4) アップロード分析とエクスポートの例を提供します。KML、KMZ、Geojson、shp、zip などをアップロードし、画像、pdf、geojson、GML、ポリラインなどをエクスポートします
。 . さまざまな図形の描画例: 点、線、円、多角形、四角形、四角形、六つ星、自由線分、自由多角形などを描く。
(6) ルート軌道に関連する例を提供する: 矢印で線分を描く、軌道アニメーションを実現する、きらめく点線を描く、高速で移動する風場の効果を実現するなど。
(7) マップ操作イベントの例を提供します: draw、modify、snap、select、pointermove、click、dblclick、singleclick、postrender (
8) 基本的なページ コントロールの例を提供します: ズーム コントロール、範囲コントロール、機能の適応、およびグリッドの追加 Line 、ドラッグして
ズームイン、ドラッグして回転など。
(10) 包括的なアプリケーション関連コードの提供: マップの切り替え、データの集約、リスト レイヤーの双方向インタラクティブ表示、フロア情報の表示、右クリック メニュー、GPS ポジショニング、ローリング シャッター効果など。

おすすめ

転載: blog.csdn.net/cuclife/article/details/130317156