<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
const routeFeature = { type: "Feature", geometry: { type: "LineString", coordinates: [ [105.9420397836494, 27.911864399055588, 0.0], [105.94204506457491, 27.911868653873896, 0.0], [105.94203985374624, 27.911863549317346, 0.0], [105.9894250218576, 28.057236450358882, 0.0], [106.10215274353018, 28.284607012841803, 0.0], [106.07371540920602, 28.280436458801173, 0.0], [106.07873615012684, 28.28931130115016, 0.0], [106.05978977915458, 28.29067898838156, 0.0], [106.01532125560543, 28.29250735826644, 0.0], [106.11251696408775, 28.335110012326794, 0.0], [106.07311049420407, 28.334906534881487, 0.0], [106.02507910445651, 28.336362174118438, 0.0], [106.02489694766722, 28.359663055160034, 0.0], [106.01964893419249, 28.36218521264283, 0.0], [106.02051116393352, 28.363011171722473, 0.0], [106.02205644084118, 28.363104546940434, 0.0], [106.02162537170554, 28.362978005991447, 0.0], [106.06032150948916, 28.372102355412082, 0.0], [106.04706634723237, 28.410958515915414, 0.0], [106.16865262249493, 28.364800431812483, 0.0], [106.15259292905644, 28.30510828317908, 0.0], ], }, }; export{ routeFeature }
const coordinates = routeFeature.geometry.coordinates; let start = coordinates[0].slice(0, 2), end = coordinates[coordinates.length - 1].slice(0, 2);
function styleFn(text) { return new Style({ image: new Icon({ src: mark, scale: 1, }), text: new Text({ textAlign: "center", textBaseline: "middle", font: "normal 14px 微軟雅黑", text, fill: new Fill({ color: "#aa3300" }), stroke: new Stroke({ color: "#ffcc33", width: 2 }), offsetX: 0, scale: 1, offsetY: 0, }), }); }
const Mark = (point, name) => { return new VectorLayer({ style: styleFn(name), source: new VectorSource({ features: [ new Feature({ geometryName: "centerMark", geometry: new Point(point), }), ], }), }); };
var lineFeature = new GeoJSON({ geometryName: "line", }).readFeature(routeFeature.geometry); const polyLineLayer = new VectorLayer({ source: new VectorSource({ features: [lineFeature], }), style: styleFunction, });
function styleFunction(featrue, resolution) { var geometry = featrue.getGeometry(); var length = geometry.getLength(); //獲取線段長度 var radio = (100 * resolution) / length; var dradio = 10000; //投影座標系,如EPSG3857設定dradio=1,在EPSG:4326下可以設定dradio=10000,其他座標系可以調整 var styles = [ new Style({ stroke: new Stroke({ color: "green", width: 10, }), }), ]; for (var i = 0; i <= 1; i += radio) { var arrowLocation = geometry.getCoordinateAt(i); geometry.forEachSegment(function (start, end) { if (start[0] == end[0] || start[1] == end[1]) return; var dx1 = end[0] - arrowLocation[0]; var dy1 = end[1] - arrowLocation[1]; var dx2 = arrowLocation[0] - start[0]; var dy2 = arrowLocation[1] - start[1]; if (dx1 != dx2 && dy1 != dy2) { if (Math.abs(dradio * dx1 * dy2 - dradio * dx2 * dy1) < 0.001) { var dx = end[0] - start[0]; var dy = end[1] - start[1]; var rotation = Math.atan2(dy, dx); styles.push( new Style({ geometry: new Point(arrowLocation), image: new Icon({ size: toSize([13, 7]), src: arrow, anchor: [0.5, 0.5], rotateWithView: false, rotation: -rotation + (Math.PI * 3) / 2, //旋轉角度可能跟圖示角度有關,自行調整 }), }) ); } } }); } return styles; }
export default { name: "arrowMap", data() { return { map: null, }; }, mounted() { let map = new Map({ // 設定地圖圖層 layers: [ gaodeMapLayer, polyLineLayer, Mark(start, "起點"), Mark(end, "終點"), ], // 設定顯示地圖的檢視 view: new View({ center: start, zoom: 10, minZoom: 2, maxZoom: 18, projection: "EPSG:4326", rotation: 0, }), // 讓id為map的div作為地圖的容器 target: "arrowMap", }); }, };
到此這篇關於openlayers 模仿高德箭頭導航路線圖的程式碼詳解的文章就介紹到這了,更多相關openlayers 高德導航路線圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45