zoukankan      html  css  js  c++  java
  • map -- mapbox 基础应用

    使用mapbox卫星地图注意:

    1. 引入版本要与样式选择的版本对应,语言版本也要有对应否则会不生效;
    2. 尽量查看英文文档;

    vue中使用

    npm install mapbox-gl @mapbox/mapbox-gl-geocoder @mapbox/mapbox-gl-language
    
    import mapboxgl from "mapbox-gl"
    import 'mapbox-gl/dist/mapbox-gl.css' // 可以在main.js中引用 
    import MapboxLanguage from '@mapbox/mapbox-gl-language'
    import MapboxGeocoder from '@mapbox/mapbox-gl-geocoder'
    import '@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css'
    
    // 设置语言
    if (mapboxgl.getRTLTextPluginStatus() !== 'loaded') {
       mapboxgl.setRTLTextPlugin('https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js') 
    }
    this.map.addControl(new MapboxLanguage({
        defaultLanguage: 'zh'
    })); // MapboxLanguage如果不传递参数,默认地图会根据设备语言进行显示;语言引入版本不同可能默认语言传递参数不同例如zh/zh-Hans
    

    Turf.js

    绘制敏感区域以及判断区域是否包含某个坐标点,可以使用插件

    全部引入&按需引入

    import * as turf from '@turf/turf'
    import {booleanPointInPolygon} from '@turf/turf' 
    

    也可单独引入某一个

    import booleanPointInPolygon from '@turf/boolean-point-in-polygon'
    

    mapbox定位当前位置功能文档
    在使用过程中有些不好用,所以应用的高德地图获取位置自定义坐标点,返回当前位置也是应用的高德地图

    handleCurrentPosition() { // gorde 获取当前位置
      var self = this
      var mapObj = new AMap.Map('iCenter')
      mapObj.plugin('AMap.Geolocation', function() {
        var geolocation = new AMap.Geolocation({
          enableHighAccuracy: true, // 是否使用高精度定位,默认:true
          convert: true,
          showMarker: true,
          showCircle: false,
          panToLocation: true, // 定位成功后,是否把定位得到的坐标设置为地图中心点坐标
          timeout: 10000
        })
        mapObj.addControl(geolocation)
        geolocation.getCurrentPosition()
        geolocation.on('complete', onComplete)
        function onComplete(data) { // data是具体的定位信息
          if (data.info === 'SUCCESS') {
            if (data.position && data.position.lng) {
              if(!self.map) {return}
                if(self.currentMarker) {
                self.currentMarker.remove()
              }
              self.map.setCenter(self.center)
              self.map.setZoom(14)
              var el = document.createElement('div')
              el.className = 'currentPoint'
              self.currentMarker = new mapboxgl.Marker({ element: el, anchor: 'bottom' })
              self.currentMarker.setLngLat(self.center).addTo(self.map)
            }
          }
        }
      })
    }
    
  • 相关阅读:
    原型链与继承
    js错误处理Try-catch和throw
    函数柯里化
    js函数节流
    事件委托
    innerHTML属性的内存和性能问题
    微信小程序左滑显示按钮demo
    this的作用
    前端工作面试经典问题(超级全)
    HTML5入门指南
  • 原文地址:https://www.cnblogs.com/lisaShare/p/14470421.html
Copyright © 2011-2022 走看看