草庐IT

openlayers云雾

全部标签

javascript - OpenLayers 仅在鼠标移动结束后才具有重绘功能

在这种情况下,我使用来自OpenLayers的Map控件2.10.在map上我有基础层这是具有自定义功能的OpenLayers.Layer.OSM和OpenLayers.Layer.Vector。现在,当我使用鼠标移动map时,以前不可见的功能将不会重绘,直到释放鼠标按钮。我在所有OpenLayers示例中都注意到了同样的问题。任何人都可以提供某种解决方法来改变这种行为吗?我想要实现的是在要素变得可见后立即绘制要素或始终绘制所有要素(我使用少量要素,因此map控制的性能并不重要)。我目前的想法是处理map上的一些特定事件(如鼠标移动和单击)并强制要素重绘。

javascript - Openlayers 3 获取谷歌地图基础层?

我已经阅读了一些关于此事的帖子,其中包含指向examples的链接。但是我发现很难理解他们在示例中是如何做到的:vargmap=newgoogle.maps.Map(document.getElementById('gmap'),{disableDefaultUI:true,keyboardShortcuts:false,draggable:false,disableDoubleClickZoom:true,scrollwheel:false,streetViewControl:false});varview=newol.View({//makesuretheviewdoesn'tgo

javascript - OpenLayers3 - 动画 .fit 到特定范围

我使用OpenLayers3创建了一张map。我可以使用以下代码成功缩放到map上的图层:map.getView().fit(extent,map.getSize());但是我想要以动画方式呈现的类似内容。我知道以下动画:ol.animation.panol.animation.zoom通过使用这些我无法缩放到图层,使用ol.animation.pan我只能平移到一个点(而不是边界框)并使用ol.animation.zoom我可以缩放到一个分辨率(和而不是边界框)。所以我正在寻找的是一个动画.fit,这样我就可以将动画缩放到一定程度。任何关于我如何实现的建议将不胜感激:)

javascript - 标准控制按钮的 OpenLayers CSS 样式

我在我页面上的脚本上使用OpenLayers,并且我正在尝试使用CSS来设计map上出现的标准按钮的样式。我按照OpenLayers文档网站对它们进行了如下样式设置:.olControlNavToolbardiv{display:block;width:28px;height:28px;top:300px;left:6px;position:relative;}.olControlNavToolbar.olControlNavigationItemActive{background-image:url("img/panning-hand-on.png");background-repe

javascript - 从 Openlayers 3 视口(viewport)获取所有功能

我正在尝试找出Openlayers3图层上所有可见的(视口(viewport))特征。如果我向map添加一个点击事件,我就能够找到一个单一的特征,如下所示。但是我无法找到视口(viewport)中可见的所有功能。有人可以帮忙吗?map.on('click',function(evt){varfeature=map.forEachFeatureAtPixel(evt.pixel,function(feature,layer){returnfeature;});}); 最佳答案 我建议您首先了解View的范围:varextent=you

javascript - Openlayers 和捕获拖动事件

我正在使用OpenLayers,我需要能够区分map何时被我自己的脚本或用户移动。是的,我知道我可以使用moveend。但它也会在同一脚本根据来自ajax调用的传入数据移动或重新定位map时触发。所以moveend或其他map事件将不起作用。我做了一些谷歌搜索并找到了OpenLayers.Hander.Drag。但我用它所做的一切就是阻止用户拖动map。我的脚本:this.dragger=newOpenLayers.Handler.Drag('',{'dragStart':function(evt){this.userdragged=true;console.log('drag');}

javascript - 在 OpenLayers (KML) 网络链接自动刷新中刷新/重绘图层

TLDR我想刷新计时器上的图层,以便绘制新的kml数据(如更新链接/网络链接)到目前为止,我已经尝试过以下操作函数:functionRefreshKMLData(layer){layer.loaded=false;layer.setVisibility(true);layer.redraw({force:true});}设置函数的间隔:window.setInterval(RefreshKMLData,5000,KMLLAYER);图层本身:varKMLLAYER=newOpenLayers.Layer.Vector("MYKMLLAYER",{projection:newOpenLa

javascript - 从 OpenLayers 功能中删除所有弹出窗口

我正在使用OpenLayers创建map和绘制位置。每个位置都有一个标记和一个弹出窗口,并且是使用OpenLayers.Feature创建的-目前,我绝对不在我的舒适区,所以我将示例代码拼凑在一起。标记如下创建(为了简洁起见,我希望是明显的变量分配被砍掉了):functionaddMarker(ll,popupClass,popupContentHTML,closeBox,overflow,type){varfeature=newOpenLayers.Feature(markerLayer,ll);feature.closeBox=closeBox;feature.popupClass

javascript - Openlayers 3 添加带有图标和文本的可移动标记

在OL3中,我成功制作了一张map,上面有可移动的标记:varmapVectorSource=newol.source.Vector({features:[]});varmapVectorLayer=newol.layer.Vector({source:mapVectorSource});map.addLayer(mapVectorLayer);functionmakeMovable(feature){varmodify=newol.interaction.Modify({features:newol.Collection([feature])});feature.on('change

javascript - 使用 OpenLayers 鼠标拖动 kml 要素

链接:http://www1.qhoach.com/当您拖动时,这张map会被平移...但是如果您拖动KML要素(带圆圈的图标),则什么也不会发生 最佳答案 首先,在您的应用程序中有四个级别的map,包括您在问题中用圆圈图标提到的矢量图层。0:"ĐườngSá"||--->OverlayTiles1:"VệTinh"||--->OverlayTiles2:"TMSOverlay"||--->Markers~Icons3:"KML"||--->Vector分析:从零开始到最后一个,只有矢量似乎是最后一个,其他的仍然是覆盖图block。