我想将我的 openlayers 地图保存为 PDF。
不幸的是,我尝试的所有选项都不起作用。
第一个选项,我想最简单的一个在这里:
https://jsfiddle.net/Ljnya5gp/1/
我从中开发了这样的东西:
function createPdf() {
var doc = new jsPDF();
source = $('#map')[0];
specialElementHandlers = {
'#map': function (element, renderer) {
return true
}
};
doc.fromHTML(
source,
15,
15,
{
'width': 170,
'elementHandlers': specialElementHandlers
}
);
doc.save('Area 5 map - alterations.pdf')
Run Code Online (Sandbox Code Playgroud)
但脚本只为我下载空白文档。
我想下载此部分(来自 index.html)
<div id="map">
<div id="popup" class="ol-popup">
<a href="#" id="popup-closer" class="ol-popup-closer"></a>
<div id="popup-content"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
为什么输出的PDF文档是空白的?是由嵌入到 HTML 文件中的 Map 脚本引起的吗?
我<div id="map">将附加到 HTML 文件的脚本称为:
jsfiddle 可以在这里找到:
https://jsfiddle.net/rjetdvyo/
它也是导致问题的原因吗?
更新:
根据下面的答案,我形成了这样的东西: …
我希望能够在 QGIS2web 插件生成的地图上绘制一些特征。
我在这里找到了一些 Openlayers 绘图插件:
https://cdn.rawgit.com/HamHamFonFon/ol3-drawFeatures/82f29a3f/examples/basic_use.html
但我不知道如何将它们与我现有的地图结合在一起。
我试图在我的地图(qgis2web.js 文件)中绘制绘图变量。
在以下代码之间的位置:
var layerSwitcher = new ol.control.LayerSwitcher({tipLabel: "Layers"});
map.addControl(layerSwitcher);
var searchLayer = new SearchLayer({
layer: lyr_Chamberspoles_2,
colName: 'Object',
zoom: 18,
collapsed: true,
map: map
});
map.getView().fit([-22418.727413, 6814717.343345, -21916.579134, 6815076.983154], map.getSize());
Run Code Online (Sandbox Code Playgroud)
我绘制了这样的图:
var layerSwitcher = new ol.control.LayerSwitcher({tipLabel: "Layers"});
map.addControl(layerSwitcher);
var searchLayer = new SearchLayer({
layer: lyr_Chamberspoles_2,
colName: 'Object',
zoom: 18,
collapsed: true,
map: map
});
map.addControl(searchLayer);
document.getElementsByClassName('search-layer')[0]
.getElementsByTagName('button')[0].className +=
' fa fa-binoculars';
var vector_draw = new ol.layer.Vector({
source: new ol.source.Vector(),
style: new …Run Code Online (Sandbox Code Playgroud) 如何将Excel公式放入文本框中?
我尝试过这样的事情:
Sub CivBox()
With ActiveSheet
.Shapes("Civils 3").Copy
[C26].Activate
.Paste
.Shapes(.Shapes.Count).Name = "Civils 4"
.Shapes("Civils 4").TextFrame2.TextRange.Characters.Text = "=D51"
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
但只返回字符串
是否可以将 Excel 公式放入文本框中,或者我应该先在某个单元格中准备它,然后将该单元格作为范围链接到该文本框中?
在单元格 D41 中,我有公寓的数量。现在,当我打开“地址列表”表时,我希望第一行立即复制 40 次(用红色标记)。我知道,它可以被描述为一个循环,这就是我尝试这段代码的原因:
Private Sub AddressList()
Dim i As Long
Dim rg As Range, rg2 As Range
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("Frontsheet")
Set ws2 = ThisWorkbook.Sheets("Address list")
Set rg = ws1.Range("D15").Value
For i = 1 To rg
Set rg2 = ws2.Range("B2:R2")
With rg2.Offset(i - 1, 0)
.Top = .Top
.Left = .Left
End With
Next I
End Sub
Run Code Online (Sandbox Code Playgroud)
在这里,我收到错误 424:需要对象
我尝试过的另一个代码是:
Sub AddressList()
Dim …Run Code Online (Sandbox Code Playgroud) 下午好,
我想快速检查我的工作簿以检测潜在的#REF!值。
我在这里找到了一些很好的解决方案:
但是当我应用它时,它会更改找到的所有值。
我需要一些东西,它会通知我,不需要的值出现。
在这个事件中,我修改了以下代码:
Sub FindAndExecute()
Dim Sh As Worksheet
Dim Loc As Range
For Each Sh In ThisWorkbook.Worksheets
With Sh.UsedRange
Set Loc = .Cells.Find(What:="#REF!")
If Not Loc Is Nothing Then
Do Until Loc Is Nothing
If Loc = True Then
MsgBox ("Error found")
End If
'Loc.Value = "Answered!"
Set Loc = .FindNext(Loc)
Loop
End If
End With
Set Loc = Nothing
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
但我看不到任何反应。当在整个工作簿中找到#REF 值时,有什么方法可以弹出消息框?
我想从我的工作表中删除所有形状。他们有相同的ID。
我找到了两个代码:
第一个:
Public Sub ActiveShapes()
Dim ShpObject As Variant
If TypeName(Application.Selection) = "Firestop" Then
Set ShpObject = Application.Selection
ShpObject.Delete
Else
Exit Sub
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
不管用。没有错误,但也完全没有反应。
第二种: 用VBA在Excel中选择一个形状
Sub Firestopshapes()
ActiveSheet.Shapes("Firestop").Delete
End Sub
Run Code Online (Sandbox Code Playgroud)
有效,但只删除一个元素。就我而言,所有元素都具有“Firestop”ID。我想让它们一次全部删除。我怎样才能做到这一点?
我使用此代码列出数组中的所有检查值:
var healthSafety = $('input:checkbox[name=health_safety]:checked').map(function() {
return this.value + (' ');
}).get();
Run Code Online (Sandbox Code Playgroud)
但问题是,分隔它们的逗号落错了地方。
我得到类似的东西:
三重梯,天窗,通往屋顶的通道
但我想要这样的东西:
三重梯子、天窗、通往屋顶的通道。
我试着把:
return this.value + (' ');
Run Code Online (Sandbox Code Playgroud)
但它没有帮助
有什么办法可以解决吗?