Вы не можете. По крайней мере, официально. Действия, описанные ниже, не рекомендуются. Они используют часть библиотеки ArcGIS JS, которая не является частью общедоступного API, поэтому такое поведение может не работать в следующей версии API, или они могут исправить предыдущую версию API, и это может перестать работать даже с чем-то. что раньше действительно работало.
Тем не менее, иногда вам нужны некоторые «будущие» функции прямо сейчас, и на самом деле это довольно простой способ получить то, что вы хотите, используя обычный шаблон прокси
Используйте недокументированную "частную" функцию _getPrintDefinition
var proxy_getPrintDefinition = printTask._getPrintDefinition;
printTask._getPrintDefinition = function() {
var getPrintDefResult = proxy_getPrintDefinition.apply(this, arguments);
//Now you can do what you want with getPrintDefResults
//which should contain the Web_Map_as_JSON
console.log(Json.stringify(getPrintDefResult));
//make sure you return the result or you'll break this print task.
return getPrintDefResult;
}
_getPrintDefinition принимает карту в качестве первого аргумента, а объект PrintParameters - в качестве второго.
поэтому вам нужно будет создать PrintTask, переопределить функцию _getPrintDefinition на вновь созданную задачу печати, как описано выше, создайте Параметры печати и затем запустите :
myPrintTask._getPrintDefinition (myMap, myPrintParameters);
Результаты моего небольшого теста:
{"mapOptions":{"showAttribution":false,"extent":{"xmin":-7967955.990468411,"ymin":5162705.099750506,"xmax":-7931266.216891576,"ymax":5184470.54355468,
"spatialReference":{"wkid":102100,"latestWkid":3857}},"spatialReference":{"wkid":102100,"latestWkid":3857}},
"operationalLayers":[
{"id":"layer0","title":"layer0","opacity":1,"minScale":591657527.591555,"maxScale":70.5310735,"url":"http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"},
{"id":"XXX-Redacted-XXX","title":"serviceTitle","opacity":1,"minScale":0,"maxScale":0,"token":"XXX-Redacted-XXX","url":"http://XXX-Redacted-XXX/arcgis/rest/services/TestService/MapServer"},
{"id":"XXX-Redacted-XXX","opacity":1,"minScale":0,"maxScale":0,"featureCollection":{"layers":[]}},
{"id":"featureGraphics","opacity":1,"minScale":0,"maxScale":0,"featureCollection":{"layers":[]}},
{"id":"map_graphics","opacity":1,"minScale":0,"maxScale":0,"featureCollection":{"layers":[]}}
]}
Если вам не нужно выполнять какие-либо операции с веб-картой json и вам просто нужен вывод, вам даже не нужно использовать шаблон прокси.
person
Ryan
schedule
24.12.2015