Tag: openlayers 3

打开图层3 – 从矢量数据中删除矢量类型(线,多边形,点)

OpenLayers 3具有强大的拖放function。 这个例子在这里给出: http://openlayers.org/en/master/examples/drag-and-drop.html 在拖放的事件处理程序中,您可以访问已拖入的矢量图层(vectorSource): dragAndDropInteraction.on(‘addfeatures’, function(event) { var vectorSource = new ol.source.Vector({ features: event.features }); map.addLayer(new ol.layer.Vector({ source: vectorSource, style: styleFunction })); map.getView().fit( vectorSource.getExtent(), /** @type {ol.Size} */ (map.getSize())); }); 这里可以看到vectorSource是从event.features创建的,但是我无法找到一种方法来判断被放入地图的向量是多边形 , 点还是线型 。 我的问题是,有没有办法告诉数据的矢量类型是什么? console.log(event.features); 表明那里有一个几何术语,但我不确定这是如何可靠地给我数据类型。 我需要知道我的图层管理工具,以便我可以正确地表示矢量图层。 我试过了: event.features[0].getGeometry(); event.features[0].getGeometryName(); 似乎都没有产生我需要的信息。

使用标记连接canvas菜单

我正在制作一个地图项目,我需要标记一些建筑物来显示该特定建筑的一些数据。 基本上,从字面上看,我正在尝试建立这样的东西 我找到了关闭canvas项目,我将它用于我的地图,这是一个有效的JSFIDDLE示例。 对于地图我正在使用openlayers3 , openstreetmap ,我没有使用google-maps ,我使用它并不感兴趣,我只是参考这张图片,因为他们有一个很好的例子,这个canvas显示数据菜单。 正如你所看到的,我在NYC周围标记了不同的区域,我想,当我点击示例时,我触发canvas菜单(不要介意它会改变canvasnav-bar样式)并显示该对象的正确数据。 我的问题是:最好的方法是什么,我想学习如何将这个非canvas粘贴到我的地图上,所以标记可以触发canvas? 我知道有一个隐藏的我将其显示为汉堡图标,用于触发canvas菜单。 但我不明白如何将所有标记连接到canvas以显示每个建筑物的不同数据。 我想学习如何做到这一点? 使用javascript或jquery会很棒,我不认为openlayers3有这种灵活性,但也许有,我对此有点困惑,有人可以帮我构建这个,谢谢。

点击事件仍然在div下面触发

这是我正在构建的PhoneGap应用程序,我正在我的笔记本电脑上测试,然后在使用PhoneGap cli的iphone上测试。 我有一个openlayers 3地图,记录了点击事件。 我还有一个div,当菜单显示时屏蔽整个地图。 这个想法是,当点击/点击这个屏蔽div时,它会隐藏自己,但下面的地图不会注册点击事件。 发生的事情是地图IS注册了click事件,因此隐藏了屏蔽div,但是地图然后做了其他事情,因为它被点击了,除了它不应该! 我把我的代码简化为细节。 这是两个截图,没有和菜单和屏蔽div显示。 右下角的按钮是打开菜单的按钮( .layers_menu_button )。 这会侦听屏蔽div( #net_curtain2 )上的点击/点击,然后隐藏它(请注意注释掉的传播事物是我尝试在此停止点击/点击事件,但它没有任何区别)。 interaction_type被定义为click或touchend具体取决于我正在测试的内容。 $(window).on(“load”, function() { $(document).on(interaction_type, “#net_curtain2”, function(event) { // event.stopImmediatePropagation(); hide_layers_menu(); }); setup_map(); }); … function hide_layers_menu() { $(‘.layers_menu_button’).fadeIn(“fast”, function() { // Animation complete }); // remove hide class, add show class $(‘.layers_menu_button’).removeClass(‘hide_layers_menu’); $(‘.layers_menu_button’).addClass(‘show_layers_menu’); $(‘.layers_menu_content’).hide(); $(“#net_curtain2”).fadeOut(“fast”, function() { // Animation […]

使用OpenLayer3显示标记,弹出窗口

我试图了解如何在openmers3的osm地图上显示标记/弹出窗口,我在ol3网页上的示例中找到了示例,但是…… 是否有更多使用javascript或jquery编码标记/弹出窗口的示例,最好是像这样或类似的例子。 这个想法是标记一个建筑物,通过点击标记它将弹出建筑物的一些信息,更多我想连接从城市到这个建筑物的重要地方(图书馆,餐馆,公共汽车站等)。 我希望如果有人能解释我如何开始构建这个,我不想使用bootstrap3(我已经看过覆盖示例),而是想要纯html5,css3,javascript / jquery)

SecurityError:canvas.toDataURL中的操作不安全

我试图解决下一个错误,但没有成功。 我有以下jQuery和HTML5代码: function doExportMap() { map.once(‘postcompose’, function(event) { var canvas = event.context.canvas; var exportBMPElement = document.createElement(‘a’); exportBMPElement.download = ‘Mapa.bmp’; exportBMPElement.href = canvas.toDataURL(‘image/bmp’); document.body.appendChild(exportBMPElement); exportBMPElement.click(); document.body.removeChild(exportBMPElement); }); map.renderSync(); } 它工作得很好,但现在,我收到以下错误: SecurityError: The operation is insecure. exportBMPElement.href = canvas.toDataURL(‘image/bmp’); 怎么了? 有任何想法吗? 有趣的是,我没有从外部源加载图像。 该图像来自localhost