亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何利用openlayers加載天地圖和高德地圖

發布時間:2021-11-22 12:32:29 來源:億速云 閱讀:663 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關vue如何利用openlayers加載天地圖和高德地圖的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

    一、天地圖部分

    1、在vue中安裝openlayers

    npm i --save ol

    這里說的vue是基于腳手架構建的。 新建個頁面,也就是vue文件,配置好路由。接著就是可以直接放入我的代碼運行顯示了。

    <template>
    
      <div class="wrapper">
    
        <div>天地圖</div>
    
        <div class="map" id="olMap"></div>
    
      </div>
    
    </template>
    
    <script>
    
    import "ol/ol.css";
    
    import {
    
      Tile as TileLayer } from "ol/layer";
    
    import XYZ from "ol/source/XYZ";
    
    import {
    
      defaults as defaultControls } from "ol/control";
    
    import Map from "ol/Map.js";
    
    import View from "ol/View.js";
    export default {
    
      data() {
       return {
    
          map: null,
    
          parser: null,
    
        };
    
      },
    
      mounted() {
        this.initMap();
    
      },
    
      methods: {
    
        initMap() {
    
         const map = new Map({
           target: "olMap",
    
            view: new View({
    
     
    
              center: [0, 0], //中心點經緯度
    
              zoom: 4, //圖層縮放大小
    
              projection: "EPSG:4326",
    
            }),
    
            controls: defaultControls({
              zoom: true,
    
              attribution: false,
    
              rotate: false,
    
            }),
    
          });
    
          this.map = map;
    
          // 添加地圖
    
          let url = "http://t{0-7}.tianditu.com/DataServer?x={x}&y={y}&l={z}";
    
          url = `${
    
       url}&T=vec_c&tk=替代你的key`;
    
          const source = new XYZ({
         url: url,
    
            projection: "EPSG:4326",
    
          });
    
          const tdtLayer = new TileLayer({
    
            source: source,
    
          });
    
          this.map.addLayer(tdtLayer);
    
          // 添加注記
    
          url = "http://t{0-7}.tianditu.com/DataServer?x={x}&y={y}&l={z}";
    
          url = `${
    
       url}&T=cva_c&tk=替代你的key`;
    
          const sourceCVA = new XYZ({
            url: url,
    
            projection: "EPSG:4326",
    
          });
    
          const tdtcvaLayer = new TileLayer({
    
            source: sourceCVA,
    
          });
    
          this.map.addLayer(tdtcvaLayer);
    
        },
    
      },
    
    };
    
    </script>
    <style scoped>
    
    .map {
    
      width: 100%;
    
      height: 100vh;
    
    }
    
    </style>

    天地圖就可以顯示出來了。

    效果圖:

    vue如何利用openlayers加載天地圖和高德地圖

    二、高德地圖部分

    相對于天地圖,高德地圖就容易多了,直接上代碼

    <template>
    
      <div class="wrapper">
    
        <div>高德地圖</div>
    
        <div id="map"></div>
    
      </div>
    
    </template>
    <script>
    
    import {
    
     Map,View,Feature} from 'ol'
    
    
    
    import * as olProj from 'ol/proj'
    
    import {
    
     Point} from 'ol/geom'
    
    import {
    
      Style, Fill, Stroke, Circle as sCircle } from "ol/style";
    
    // 添加圖層
    
    import Tilelayer from 'ol/layer/Tile'
    
    import {
    
     Vector as VectorLayer} from 'ol/layer'
    
    import {
    
     XYZ,Vector as VectorSource} from 'ol/source'
    
    //引入樣式文件
    
    import "ol/ol.css"
    export default {
      data() {
    
      return {
        map:null
    
        }
    
      },
    
      mounted() {
    
      this.init();
    
       this.setMarker();
    
      },
    
      methods: {
    
        init(){
    
           this.map=new Map({
    
             target:'map',
    
             layers:[new Tilelayer({
    
               source: new XYZ({
    
                   url:'https://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}',
    
               })
    
             })
    
             ],
    
            view:new View({
    
    
                // 將西安作為地圖中心 
    
                // olProj.fromLonLat方法將經緯度轉換成對應的坐標
    
              center:olProj.fromLonLat([108.945951, 34.465262]),
    
              zoom:2
    
            }),
    
           })
    
        },
    
        setMarker(){
    
            let _style = new Style({
    
                image:new sCircle({
    
                    radius:10,
    
                    stroke:new Stroke({
    
                        color:"#fff",
    
                    }),
    
                    fill: new Fill({
    
                        color:'#3399CC',
    
                    }),
    
                }),
    
            });
    
            let _feature = new Feature({
    
     
    
                geometry:new Point(olProj.fromLonLat([108.945951, 34.465262])),
    
            });
    
            _feature.setStyle(_style);
    
            let _marker = new VectorLayer({
    
    
                source: new VectorSource({
    
                   feature:[_feature],
    
                }),
    
            });
    
            this.map.addLayer(_marker);
    
        },
    
      },
    
    }
    
    </script>
    
    <style scoped>
    
      #map{
    
          /* 屏幕寬高 */
    
        width: 100vw;
    
        height: 100vh;
    
      }
    
    </style>

    感謝各位的閱讀!關于“vue如何利用openlayers加載天地圖和高德地圖”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    百色市| 新竹县| 双鸭山市| 扶绥县| 光山县| 临江市| 昌江| 庆云县| 扎兰屯市| 望谟县| 杨浦区| 什邡市| 乐东| 亳州市| 淄博市| 岚皋县| 丰镇市| 广东省| 江永县| 浏阳市| 平南县| 湘阴县| 阳新县| 黄冈市| 郯城县| 绥棱县| 长治县| 荃湾区| 晋宁县| 台州市| 民丰县| 易门县| 磐安县| 张家口市| 武山县| 墨脱县| 含山县| 高雄市| 宜兴市| 长沙县| 拉萨市|