【发布时间】:2015-07-15 15:19:46
【问题描述】:
我正在尝试使用 JS API(不是显示的扩展)在 Arcgis 地图上打印特定区域。
我没有找到任何方法或选项来执行此操作,因此我尝试更改扩展,然后打印地图:
var extent = new esri.geometry.Extent(
-620526.0922336339,
5993991.149960931,
108988.90572005256,
6293624.300838808,
myMap.spatialReference
);
myMap.setExtent(extent, true).then(function() {
console.log('setExtend is finished');
var template = new esri.tasks.PrintTemplate();
template.exportOptions = {
width : 500,
height : 500
};
template.format = 'jpg';
template.layout = 'MAP_ONLY';
var params = new esri.tasks.PrintParameters();
params.map = myMap;
params.template = template;
var printTask = new esri.tasks.PrintTask(urlToThePrintServer);
printTask.execute(params);
});
由于 setExtent 是异步的并返回一个延迟的,我必须使用 'then' 方法。
我可以看到地图在移动,但延迟似乎不起作用......(我没有看到 console.log())。
- 还有其他打印地图特定范围的方法吗?
- 如果不是,为什么永远不会调用 'then' 方法?
(我使用的是 3.12 JS API)
【问题讨论】:
-
外观看起来不错,除了您使用的是已弃用的非 AMD 样式。您是否尝试在该函数中设置断点?
-
是的,我还添加了一个 try/catch。没有错误,但从未调用过“then”部分。
标签: gis arcgis esri arcgis-js-api