vite map

2022-12-29  本文已影响0人  hehehehe

mapbox

@import "/node_modules/mapbox-gl/dist/mapbox-gl.css";

html, body {
  margin: 0;
  height: 100%;
}
#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}

import './style.css';
import mapboxgl from 'mapbox-gl'; 

mapboxgl.accessToken = 'pk.eyJ1IjoicmFkaTIwMTUiLCJhIjoiY2tzOXpid2hzM25saDJxbXMyaGtvanZ5dyJ9.6jv0s_vChRoNSpQmhawyq';
const map = new mapboxgl.Map({
    container: 'map', 
    style: "/src/mbx/data/style1.json",
    center: [116.3, 40],
    zoom: 10, 
});

{
  "name": "mapbox_baidu",
  "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
  "version": 8,
  "sources": {
    "aoi_source": {
      "type": "geojson",
      "data": "/src/data/aoi.geojson"
    }
  },
  "layers": [
    {
      "id": "background",
      "type": "background",
      "paint": {
        "background-color": "pink"
      }
    },
    {
      "id": "landuse_park",
      "type": "fill",
      "source": "aoi_source",
      "paint": {
        "fill-color": "#d8e8c8"
      }
    }
  ]
}

ol

@import "/node_modules/ol/ol.css";

html, body {
  margin: 0;
  height: 100%;
}
#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}
import './style.css';
import {Map, View} from 'ol';
import TileLayer from 'ol/layer/Tile';
import VectorLayer from 'ol/layer/Vector'
import XYZ from 'ol/source/XYZ'
import VectorSource from 'ol/source/Vector'
import {fromLonLat} from 'ol/proj'
import MapboxVectorLayer from 'ol/layer/MapboxVector'
import GeoJSON from 'ol/format/GeoJSON'
import Polygon from 'ol/geom/Polygon';
import Feature from 'ol/Feature';

let vectorLayer = new VectorLayer({
  source: new VectorSource({
    projection: 'EPSG:4326',
    url: "/src/data/aoi.geojson", 
    format: new GeoJSON()
  })
})

const map = new Map({
  target: 'map',
  layers: [
    new TileLayer({
        source: new XYZ({
          url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}',
          wrapX: false
      })
    }),
    vectorLayer
    // new MapboxVectorLayer({
    //   styleUrl: 'mapbox://styles/mapbox/bright-v9',
    //   accessToken: 'pk.eyJ1IjoicmFkaTIwMTUiLCJhIjoiY2tzOXpid2hzM25saDJxbXMyaGtvanZ5dyJ9.6jv0s_vChRoNSpQmhawyqw',
    // })
  ],
  view: new View({
    // projection: 'EPSG:4326',
    center: fromLonLat([116.283, 40.04]),
    // center: [116.3, 40],
    zoom: 12
  })
});


map.on("click", function (ev) {
  // 获取像素
  let pixel = ev.pixel;
  // 获取坐标
  let coordinate = ev.coordinate;
  let feature = map.forEachFeatureAtPixel(pixel, function (feature) {
    let source = vectorLayer.getSource()
    console.log(feature)
    source.clear()
    source.addFeature(feature)

  });
});

// import {applyStyle} from 'ol-mapbox-style';
// const layer = new VectorLayer();
// applyStyle(layer, 'style4.json');
// new Map({
//   target: 'map',
//   layers: [layer],
//   view: new View({
//     center: fromLonLat([116, 40.920367528011525]),
//     zoom: 3,
//   }),
// });

上一篇下一篇

猜你喜欢

热点阅读