Vector Tiles: Printing map results in World Streetmap Raster

4537
6
Jump to solution
01-19-2016 08:23 PM
DavidChrest
Occasional Contributor II

In the 3.15 API for the VectorTileLayer Class, there is this important Known Limitation in the list:

  • If printing a map containing a VectorTileLayer that uses the World Basemap service and the layer is not a basemap reference layer, then the print task will use the World Street Map raster tiles in the printout; otherwise, the VectorTileLayer will not be included in the layout.

So what exactly does this mean? A couple weeks ago I quickly discovered when printing (Print dijit - to PDF) my map containing a Vector Tile Layer (Esri's nice World Navigation in this case), the World Street Map rater appeared in the PDF output rather that the Vector Tile Layer. So does the above limitation essentially mean whenever using Vector Tiles our printouts will default to the World Street Map raster? Are there plans to have Vector Tile Layers included in the printed map layout?

Also, I tested this with using a Mapbox Vector Tile Layer and the printout had no map at all, the layout was pure white and empty. Which I'm thinking is because this Vector Tile does not use Esri's World Bamap service, correct?

Any help to better explain this situation is greatly appreciated.

1 Solution

Accepted Solutions
ReneRubalcava
Frequent Contributor

Right now Vector Tiles are not supported in the print service, so the JSAPI will substitute the street service for now. You can see the last slide of this presentation from DevSummit for that question.

DevSummit 2016: Vector Tiles in the ArcGIS Platform // Speaker Deck

That functionality will hopefully come in a future release.

View solution in original post

6 Replies
AlanHammersmith
New Contributor III

I am having the same problem.  Our client wanted to have streets displayed on top of the satellite imagery, but the 'hybrid' basemap uses the World_Boundaries_and_Places reference layer.  This only shows things like malls, parks and river names.  Not a great reference layer.  How are we supposed to print using the World Basemap vector tile layer?  This is the url I am adding in (http://www.arcgis.com/sharing/rest/content/items/1c7f9b4db2604d54a8deae29f0eecbcf/resources/styles/r...) which displays great in the app, but is removed from the printable PDF.

0 Kudos
ReneRubalcava
Frequent Contributor

Right now Vector Tiles are not supported in the print service, so the JSAPI will substitute the street service for now. You can see the last slide of this presentation from DevSummit for that question.

DevSummit 2016: Vector Tiles in the ArcGIS Platform // Speaker Deck

That functionality will hopefully come in a future release.

PatrckWild
New Contributor II

BUMP

Has this issue been addressed in either the 3.20 or 4.3 JS API?

Does anyone have a workaround?

Thanks

PW

JoshuaChisholm
Occasional Contributor III

Hello PW,

My workaround really sucks. It's a BIG time and resource sink.

We got StreetMap Premium from esri. The product comes with data and an MXD that's almost an exact match of the 'streets' basemap. I also found a MXD that closely matches the light gray basemap and reconnected all the layers to point to the data from StreetMap Premium. Then I created services for those MXDs and with the help of my expert co-worker, made a printing service that replaces the standard 96DPI raster basemap with the new service. It gets more complicated if you want to 'sandwich' a thematic layer in between the layers of the basemap (for example roads on top of a choropleth).

I've talked with several developers at esri and this unfortunately seems to be the only way right now. If you find anything else, please let me know. I'm eagerly waiting the day printing is supported for the vector tiles! Good luck!

(Upvote the idea here)

0 Kudos
ReneRubalcava
Frequent Contributor

VectorTile printing is supported in 3.21 and 4.4

Print widget using a VectorTileLayer | ArcGIS API for JavaScript 4.4 

The way it works is we take an image of the VT on the client and send that image with the normal print information to the Print Service and it will embed the image in the print for you. Server still can't print VT directly, but this is a workaround introduced into the JSAPI.

0 Kudos
JoshuaChisholm
Occasional Contributor III

Hello Rene,

Thank you for sharing! I did not know that existed.

Taking a image client-side would mean we are still locked at 96dpi. Is this correct?

Thank you!

0 Kudos