赞
踩
openlayers 地图加载geojson绘制边界,点,线,面
// 绘制点 / 线 / 面 drawContent(geo) { if (this.routeLayer) { this.map.removeLayer(this.routeLayer); } let features = []; geo.features.forEach((g) => { let lineData = g.geometry; let routeFeature = ""; if (lineData.type === "MultiPolygon") { routeFeature = new Feature({ geometry: new MultiPolygon(lineData.coordinates), }); routeFeature.setStyle( new Style({ fill: new Fill({ color: "rgba(0,0,255, 0.5)", //填充颜色 }), stroke: new Stroke({ width: 2, //边界宽度 color: [255, 0, 0, 1], //边界颜色 }), }) ); } else if (lineData.type === "Polygon") { routeFeature = new Feature({ geometry: new Polygon(lineData.coordinates), }); routeFeature.setStyle( new Style({ fill: new Fill({ color: "rgba(0,0,255, 0.5)", //填充颜色 }), stroke: new Stroke({ width: 2, //边界宽度 color: [255, 0, 0, 1], //边界颜色 }), }) ); } else if (lineData.type === "MultiLineString") { routeFeature = new Feature({ geometry: new MultiLineString(lineData.coordinates), }); routeFeature.setStyle( new Style({ fill: new Fill({ color: "rgba(0,0,255, 1)", //填充颜色 }), stroke: new Stroke({ width: 2, //边界宽度 color: [255, 0, 0, 1], //边界颜色 }), }) ); } else if (lineData.type === "LineString") { routeFeature = new Feature({ geometry: new LineString(lineData.coordinates), }); routeFeature.setStyle( new Style({ fill: new Fill({ color: "rgba(0,0,255, 1)", //填充颜色 }), stroke: new Stroke({ width: 2, //边界宽度 color: [255, 0, 0, 1], //边界颜色 }), }) ); } features.push(routeFeature); const center = this.getLast(lineData.coordinates); this.map.getView().setCenter(center); }); // 设置图层 this.routeLayer = new VectorLayer({ source: new VectorSource({ features: features, }), }); // 添加图层 this.map.addLayer(this.routeLayer); }, // 获取到第一个坐标点,设置成地图中心 getLast(list) { const isArray = list[0] instanceof Array; if (!isArray) { return list; } else { return this.getLast(list[0]); } },
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":370321,"name":"xx县","center":[118.101556,36.959773],"centroid":[118.026774,36.992528],"childrenNum":0,"level":"district","acroutes":[100000,370000,370300],"parent":{"adcode":370300}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.940613,36.891605],[117.940224,36.899505],[117.941006,36.899192],[117.940613,36.891605]]]]}}]}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。