ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – OpenLayers功能仅在鼠标moveend后重绘

2019-05-18 15:31:16  阅读:181  来源: 互联网

标签:javascript openlayers


在这种情况下,我使用OpenLayers 2.10的地图控件.在地图上我有基础层
这是具有自定义功能的OpenLayers.Layer.OSM和OpenLayers.Layer.Vector.现在,当我使用鼠标移动地图时,以前不可见的功能将不会重新绘制,直到释放鼠标按钮.我在所有OpenLayers示例中都注意到了同样的问题.任何人都可以提供某种改变这种行为的工作吗?我想要实现的是在功能变得可见之后立即绘制功能或者总是绘制所有功能(我使用少量功能,因此地图控制的性能并不重要).

我目前的想法是处理地图上的一些特定事件(如点击鼠标移动)和强制功能重绘.

解决方法:

更新

SVG2渲染器是在v2.11中引入的,然后出于可靠性原因立即在v2.12中弃用(参见this pull request).对于OL> = 2.12,设置图层的比率属性,使其在更宽的区域内渲染所有要素,作为屏幕尺寸的比例.权衡是性能,如果您的用户在某个方向“抛出”他们的地图,他们将飞过这些功能,但在那时他们可能会有一些渲染延迟.

new OpenLayers.Layer.Vector("My Layer", {
    ratio: 2
});

原始答案

http://lists.osgeo.org/pipermail/openlayers-dev/2011-March/007345.html开始:

the new OpenLayers.Renderer.SVG2 renderer does what you are requesting. It is available on trunk (and will be in 2.11). To use it, configure the renderers array for your OpenLayers.Layer.Vector like this:

06001

Or set it on the prototype:

OpenLayers.Layer.Vector.renderers = ["SVG2", "VML", "Canvas"];

Note that VML (used in IE6,7,8) and Canvas (used on Android devices) behave like Renderer.SVG and don’t draw features while panning.

标签:javascript,openlayers
来源: https://codeday.me/bug/20190518/1128773.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有