canvas瓦片图加载

最近做了一个canvs瓦片图的项目,由于初次尝试,踩了不少坑。下面罗列一下

1.没有dom不好选取,移动端的点击和移动同时触发--放在touchend里面判断,start的时候记录鼠标位置,end的时候看这个位置有没有移动,如果有位移就是move,没有就是点击

2.点击穿透问题,加了一个400毫秒的timeout解决

3.safari浏览器遇到图片没有onload的时候,就等于报错,不执行,导致重绘出问题。而chorme不会。

4.坐标转换过来的时候是json格式,需要截取字符串转换日期

var beginTime = data[i].CmsEvents.BeginTime;    //获取传过来的json时间戳

beginTime = beginTime.slice(6, 16);         //截取传过来的json时间戳

var endinTime = data[i].CmsEvents.EndTime;
endinTime = endinTime.slice(6, 16);
var bd = new Date(beginTime * 1000);      //获取现在的时间
var ed = new Date(endinTime * 1000);
var bdtime = (bd.getFullYear()) + "." +        //拼接成想要的格式,以“。”分隔
(bd.getMonth() + 1) + "." +
(bd.getDate());
var edtime = (ed.getFullYear()) + "." +
(ed.getMonth() + 1) + "." +
(ed.getDate());

用的比较low的办法

5.从后台获取的gps数据,需要绑定到前台,没有很好的办法,只能用canvas写,且建筑物在地图上的位置没有规律可循。所以就一个个写在获取gps成功的callback里。另外一定要记得引入百度地图的js。之前忘记了,一直获取不到坐标。

时间: 2024-10-11 01:20:16

canvas瓦片图加载的相关文章

arcgis 瓦片图加载规则(转载)

arcgis 瓦片图加载规则 最近需要做地图离线的功能,要能下载指定区域的瓦片图,我们都知道如何加载谷歌和天地图的加载规则,但是网上貌似没有找到如何加载arcgis自己发布的瓦片图规则,好不容易找到一个文章给的公式并不正确,后来还是翻开JS版的源码找到了加载公式,如下图红框内 翻译一下 double r = res_ds[_level]*256;   //res_ds[_level]为当前级别的分辨率double y = point_origin.getY();  // point_origin

ORB-SLAM2 地图加载

一.前面说了ORB-SLAM地图的保存部分,继续说地图如何加载,因为加载部分相比保存要稍微复杂一些,所以要多说一点. 二.ORB-SLAM2地图加载构成 首先同样是在头文件中声明加载函数,包含地图点和关键帧类的加载. void Load( const string &filename, SystemSetting* mySystemSetting ); MapPoint* LoadMapPoint( ifstream &f ); KeyFrame* LoadKeyFrame( ifstre

ArcGIS API for Silverlight地图加载众多点时,使用Clusterer解决重叠问题

原文:ArcGIS API for Silverlight地图加载众多点时,使用Clusterer解决重叠问题 问题:如果在地图上加载成百上千工程点时,会密密麻麻,外观不是很好看,怎么破? 解决方法:使用Clusterer 密密麻麻的情况图: <UserControl.Resources> <LinearGradientBrush x:Key="BlueGradient" MappingMode="RelativeToBoundingBox" &g

关于地图加载

关于地图加载 .map文件记录了格子大小为107*160,关于.map文件时如何生成的我也不清楚,.map文件中已经有二维大小以及整个阻挡信息(0:无阻挡,1:阻挡,2:透明0) /** *m_nMapWidth 地图宽 *m_nMapHight 地图高 *m_dvecCollsion 地图阻挡信息 */ info->get_collsion(m_nMapWidth, m_nMapHight, m_dvecCollsion); 他这个获取.map是这样的 ^ |-------------> |

Android—大图or多图加载解决方案(完美解决OOM问题)

在开发应用的时候,很多时候都会涉及大量图片的加载和高精度图片的加载,这两种操作都是会导致应用程序OOM(OutOfMemory)的问题发生,合理的图片加载和图片内存管理就是必须解决的问题,以下将提供一个比较完善的技术方案,解决这两个问题. 首先,我们必须明确为什么会发生OOM(OutOfMemory)的问题,其原因就是因为在APP运行过程中,所使用的系统内存超出了当前APP的最大可用内存,就发生了OOM的问题.下面,我们来估算一下在一台中高档的手机上面,加载多少图片会导致OOM:假设系统分配给A

工具管理----菜单位图加载

菜单背景色设置,主要用到的函数SetMenuInfo 函数原型:BOOL SetMenultemlnfo(HMENU hMenu,UINT uitem,BOOL fByPosition,LPMENUITEMINFO lpmii); 参数: hMenu:包含菜单项的菜单的句柄. ultem:将被修改的菜单项的标识符或位置.此参数的含义由参数fByPosition确定. FByPosition:用于指定参数ultem的含义的值.如果此参数值为FALSE,则参数ultem是菜单项的标识符,否则,表示菜

Openlayers+Geoserver(一):项目介绍以及地图加载

项目验收完,趁着事情不是很多,对这个项目进行梳理.我主要负责地图模块,网站其他模块主要有两个,一个是报表,主要是100多张报表,技术没有难度,主要是工作量的问题.另一个是数据的校验,就是校验数据的冲突. 现在主要介绍地图,地图主要使用openlayers+geoserver,通过Geoserver加载路线以及点状物的shape数据,将各个图层形成一个图层组,页面前端用openlayers加载该图层组,然后对此图层组进行查询.这样做的好处就是,如果有新的图层增加,如果没有特殊的需求,是不需要修改代

【ask】ghost分区还原win7出现蓝屏,试图加载CLASSPNP驱动时出现

1.最近由于需要把整个c盘备份了,然后还原在另一台机器上. 2.结果当然时出事了,开始一切如旧,但是机器重启后,蓝屏了. 3.哦,开始立马觉得可能时因为有些软件的驱动是装载d盘了. 4.赶紧把d盘也备份然后还原了,满心欢喜的觉得没问题了,接着可想而知继续蓝屏了. 5.这时候才开始冷静下来按通常步骤行事. 7.仔细看了看蓝屏提示,大概知道是驱动加载是的问题,于是想看看安全模式吧. 8.结果仍然蓝屏,但是看清楚是因为加载到CLASSPNP这个驱动出的问题. 9.开始错愕于为什么会是这个样子呢, [a

Android高清巨图加载方案

1.今天看了鸿洋的<Android高清巨图加载方案>一文,对加载高清巨图时的解决方案有了一定的认识. 思路为: 提供一个设置图片的入口. 重写onTouchEvent,在里面根据用户移动的手势,去更新显示区域的参数. 每次更新区域参数后,调用invalidate,onDraw里面去regionDecoder.decodeRegion拿到bitmap,去draw. 2.除此之外,对安卓的手势事件分发以及手势监听做了进一步学习. 2.1.手势事件分发 详见<Android手势事件分发过程分析