Más

Cambio de color de símbolo de texto de impresión de ArcGIS Javascript


Tengo una aplicación de mapas de ArcGIS Javascript que usa la tarea Imprimir para exportar el mapa a un PDF. Les he dado a los usuarios la capacidad de agregar gráficos al mapa, como puntos o polígonos, junto con la capacidad de agregar un gráfico TextSymbol para personalizar la salida del mapa PDF. El problema que tengo es con la apariencia de TextSymbol en la impresión del PDF. Por alguna razón, no puedo cambiar el color del texto en la salida. Incluso si el texto del mapa web es rojo, el color del texto del pdf es negro. Apliqué código para cambiar el color de los textLayers realizando un esriRequest.setRequestPreCallback para interceptar el JSON que va al servicio de impresión. Sin embargo, el texto aún termina en negro en la salida. Mi código para eso está a continuación. He hecho console.logs para ver cómo se ve el objeto después de cambiar el color y lo cambia, pero aún así el texto termina siendo negro en la salida del pdf. ¿Alguien sabe cómo cambiar el color del texto en la salida PDF o cómo agregar algún tipo de fondo rectangular en TextSymbol para que las etiquetas puedan ser más visibles en las salidas PDF?

function changeTextColor () {esriRequest.setRequestPreCallback (function (ioArgs) {if (ioArgs.content && ioArgs.content.Web_Map_as_JSON) {var webMapAsJson = ioArgs.content.Web_Map_as; en webMapObj.operationalLayers) {if (webMapObj.operationalLayers [w] .id = "map_graphics" && webMapObj.operationalLayers [w] .url == undefined) {for (var l en webMapObj.operationalLayers [w] .featureCol) {if (webMapObj.operationalLayers [w] .featureCollection.layers [l] .layerDefinition.name == "textLayer") {for (var f en webMapObj.operationalLayers [w] .featureCollection.layers [l] .featureSet.features) {// actualmente solo estoy tratando de cambiar el texto para que sea turquesa, pero sigue mostrando texto en negro en la salida PDF webMapObj.operationalLayers [w] .featureCollection.layers [l] .featureSet.features [f] .symbol.color [0 ] = 0; webMapObj.operationalLayers [w] .featureCollection.layers [l] .featureSet.features [f] .symbol.color [1] = 255; webMapObj.operationalLayers [w]. featureCollection.layers [l] .featureSet.features [f] .symbol.color [2] = 255; }}}}} ioArgs.content.Web_Map_as_JSON = JSON.stringify (webMapObj); } return ioArgs; }); }

Resolví mi problema usando la respuesta a este hilo: https://geonet.esri.com/thread/118646. Terminé sin necesidad de hacer un esriRequest.setRequestPreCallback después de todo. Creé un menú desplegable de opciones simples para el color y el tamaño que el usuario puede seleccionar y luego dibujar un símbolo de texto usando esas opciones y termina saliendo correctamente en la salida PDF.


Ver el vídeo: Etiquetas y anotaciones ArcGIS - LABELS u0026 ANNOTATIONS (Septiembre 2021).