美文网首页
Leaflet中使用Canvans 画图(drawImage)漂

Leaflet中使用Canvans 画图(drawImage)漂

作者: 李逍遥JK | 来源:发表于2018-10-16 14:16 被阅读94次

在leaflet地图中画自定义覆盖物,使用自己的图标,如果图标的宽高和Point(x, y)的大小不匹配,则会出现覆盖物漂移问题。


1-1 覆盖物漂移图 注:圈中的覆盖物偏移了原来的正确位置

这个时候,我们要设定正确的值,使Leaflet的Point(x, y)对象的中心点和覆盖物中心点对应。


1-2 覆盖物和Image 的关系
如图1-2所示,覆盖物Point(x,y)的宽高分别为x,y,我们要将Image和Point(x,y)的中心设置在相同位置上,此时在canvas的drawImage()方法中应该将参数x,y设置为x',y'
    
       /**
         * drawImage(img, x, y) 应该为x',y',这时image才能在Point覆盖物的中心位置
         * 其中 x' = (A-image.with/2), y' = (B - image.height/2)
         * */
        img.onload = function(){
            //平移坐标原点
            ctx.translate(90, 30); 
            console.log('y: ' + course)
            //旋转画布
            ctx.rotate(course);     
            ctx.translate(-90, -30);
            //画图
            ctx.drawImage(img, x', y');  
        }

设置好之后,测试效果如下


1-3 正确位置效果图

相关文章

  • Leaflet中使用Canvans 画图(drawImage)漂

    在leaflet地图中画自定义覆盖物,使用自己的图标,如果图标的宽高和Point(x, y)的大小不匹配,则会出现...

  • 微信小程序中canvas.drawImage画图

    描述:在页面加载是使用canvas.drawImage画图,点击页面下面按钮在已绘制好的图形上继续画图。使用ctx...

  • 前端实现图片压缩

    1.思路 获取图片数据 —> 用canvans画图,压缩 —> 压缩后为base64 —> 转成文件格式 —> 上...

  • leaflet使用百度地图

    leaflet使用百度地图,叠加层使用硬件/谷歌坐标。leaflet默认使用硬件/谷歌坐标,使用百度地图需要进行坐...

  • leaflet 使用 wmts 服务

    leaflet 使用 wmts 一直做地图方面的页面开发,这次接到一个新需求,使用leaflet对接公司的WMTS...

  • 支持Canvas的Leaflet.Path.DashFlow动态

    通过对leaflet以及其插件的学习,我们了解到使用Leaflet.Path.DashFlow插件可实现轨迹动态展...

  • leaflet地图介绍

    本文将介绍有关于leaflet地图组件在web中的应用 什么是leaflet? leaflet是一个轻量级的开源j...

  • Leaflet简介及入门

    Leaflet Leaflet 官网Leaflet Github Leaflet,是一个JavaScript的,针...

  • vue2-leaflet

    import L from 'leaflet' import 'leaflet/dist/leaflet.css'...

  • Vue leaflet 使用vue2leaflet

    在Vue中直接使用leaflet也可以,但是用vue2leaflet更加方便,直接用组件化的方式来加载marker...

网友评论

      本文标题:Leaflet中使用Canvans 画图(drawImage)漂

      本文链接:https://www.haomeiwen.com/subject/abvczftx.html