Vector Tile Popups

15736
31
02-14-2017 08:29 AM
RichardThompson
New Contributor II

I'd like to see the same option to enable popups on vector tiles that is available on tile layers. Currently if you're using a traditional cache tiled layer you can select a sublayer and enable popups by pointing it to an equivalent feature service. The same should be available on vector tiles.

Currently there is a large functionality gap in ArcGIS Online:

Dynamic data with low feature count  = Feature Layer

Static data with high feature count = Tiled Layer

Dynamic data with high feature count = ?

This is the role previously used by dynamic map services, however those are only available via an internal ArcGIS Server. Hosted vector tiles work perfectly for this and perform incredibly well, but without the popup functionality they're basically alternative basemaps instead of useful operational layers.

Thanks 

31 Comments
DaveTenney

any update on when this feature will be available?

KellyGerrow

Thanks for your input and feedback about the need to include Pop-Ups with Vector Tile Layers. Our roadmap for this request has changed since my previous post, so I have now updated the status of this idea and have some additional details about our direction for this feature moving forward.

Over 2017-2018 and continuing into 2019 many improvements have been made hosted feature layers making them to be more performant, flexibly styled and drawn from dynamic (live) features. For this reason, we recommend using hosted feature layers as operational layers for visualization of large datasets that include popups and client-side interactivity.  The benefit with this approach is that you don’t have to create a secondary visualization layer like vector tiles or raster tiles.  We continue to recommend using Vector Tile layers for use as basemaps but do not plan to focus development work to have them reach parity with feature layers and raster tiles that are used for operational layers ( pop-ups). We are interested still considering this idea and are listening for feedback, especially about workflows that require Vector Tile layers as operational layers.

Updates to Hosted Feature Layers:

1. Hosted Feature Layer efficiently retrieved data from ArcGIS Online hosted feature services using feature tiles. For ArcGIS Online hosted feature layers, the feature tiles are quickly returned and the responses are for fast querying and display tons of data drawn from live data.

2. The support for .pbf format in requests has resulted in reduced data size for feature tile requests. This is the same delivery mechanism for Vector Tiles

3. The Javascript API rendering engine has been updated to render all feature layers in WebGL. This enables fast client side rendering and dynamic updates as styles are changed.   

*Note WebGL is currently not supported in WAB, Story Maps and Operations Dashboard but will be supported in future updates.

In the event that operational data is drawing slowly or inefficiently due to the amount of data or complexity, we do recommend using raster tile layers to assist in drawing the data at small scales as outlined in these blogs:

https://www.esri.com/arcgis-blog/products/js-api-arcgis/mapping/render-millions-of-features-in-your-...

https://www.esri.com/arcgis-blog/products/data-management/mapping/strategies-to-effectively-display-... 

https://www.esri.com/arcgis-blog/products/data-management/data-management/scalable-hosted-feature-la...

 

Thanks again for your feedback and please continue to let us know your thoughts,

-Kelly

SimonWebster

Although the updates and changes to hosted feature layers are valuable, this is overall a very disappointing response. There are quite a number of scenarios where the flexibility, storage, and delivery of vector tile layers surpasses the utility of hosted feature layers (not to mention cost and storage requirements).

If they are suitable for use in base maps this is as good as admitting that they are appropriate for large, geographically wide ranging, and complex datasets. Why then would you not aim to enable your users to make full use of the specification and allow for popups when using them? I suspect the answer is somewhere in the “we built ourselves in to a corner, again, because server doesn’t fully support the spec, and we have not built it into the JS API (Just like grouping layers wasn’t until JS API 4!), and it would be a problem to bring it to AGOL / WAB” basket.

Might I honestly suggest this one gets taken back to the implementation team and is more seriously discussed about how this can be implemented effectively, and not just how hard it would be to do so.

Simon Webster

RichardThompson

Agree 100%

While the improvements to feature layers is very welcome all it does is slightly increase the range of acceptable performance.

Maybe you can now accommodate 10k features in a feature layer while before it was 2k. That's great but it still doesn't help me if i have 20k features, especially if the geometry is complex.

I'm yet to hear a good answer from esri as to how i can best render a large dataset with complex polygons and attribution that changes frequently. At least tell me something is on the roadmap.

KellyGerrow

Hi Richard,

Thanks for your feedback Richard. Are you able to share or describe your data? Does it display slowly as a hosted feature layer? The changes made to feature layers should be able to support more than 20K features and can generally render complex geometry but there are some cases (millions of vertices) where it's more performant to create a tile layer. The other benefit of feature layers is that the layer is rendered from the data and doesn't require a rebuild of tiles when the data updates. Feel free to reach out to me directly or on this post with your data or your hosted layer so that we can understand where you are running into slowness with your specific data.

-Kelly

KellyGerrow

Hi Simon,

Thanks for your reply. This is something that we will continue to consider so your feedback is much appreciated.

Would you be able to share some of the specifics where you are experiencing gaps between the flexibility, storage and delivery between vector tiles and feature layers? As feature layers are delivered from data, there is more flexibility in styling and accessing different features within the database that don't require pre-generating the tiles.

The team is open to continuing this discussion so please continue to let us know your thoughts, specific examples are really helpful when digging into the differences and needs with Vector tiles and feature layers.

Thanks,

Kelly

by Anonymous User

Kelly thank you for the detailed info. For us, the main reason I can not use 'hosted' for the main reason that we can not group layers in a web map. I use MXDs to group layers logically in the layer list. 

Feature layers are too slow from SDE, which drew my interest in vector tiles paired with featureservice or some other mechanism to support attributes and popups as if it were a feature layer but benefiting from the rapid drawing speed offered by vector layers. (or webGL if they can solve the web-worker stability issue) So for now, I use dynamic layers, which while they have some limitations are the only way to get acceptable viewers I have been able to implement in my experience. Customers often need to keep data on premise for security. ArcGIS Server Enterprise on premise is a requirement. Many of my layers have hundreds of thousands of features and more segments. Example; parcels, utilities, and streets.  We feel a need... "a need, for speed"! 

Ah and interesting I did not notice webGL is not supported in WAB yet. I'd tested it with layers last year and hit the Chrome crash with "8 web workers" message and threw in the towel for a while on it. I think perhaps that will be the ultimate solution for dynamic layers with high feature count. Will webGL layers work on phones or old browsers?

BillSchlatter

In short, feature layers don't cut it with larger datasets.  

My organization makes a lot of web maps and web apps showing data about our regional road network.  This road network consists of over 250,000 road segments.  Dissolving or unsplitting the network reduces the feature count and improves performance considerably, but we would lose a lot of precision regarding details like pavement condition and traffic counts in the process.  Quite simply, the network does not display properly when we load it into an AGO map, and vector tiles would be an excellent solution in many cases if they could have pop-ups and/or some degree of filtering. 

One example we have online right now that uses vector tiles quite well can be seen here: https://maps.semcog.org/nfc/.  Some of our other maps use a clumsy, difficult-to-maintain hybrid of raster tile layers when zoomed out combined with feature layers when zoomed in.  That solution gets us pop-ups, though those pop-ups can be extremely labor-intensive to build and maintain because there's no easy way to copy pop-up settings and arcade functions from one layer to another, even if they're both instances of the same feature service.  The fact (bug?) that one can't update pop-up settings on a tile layer, only rebuild the entire pop-up configuration from scratch, makes it even more aggravating.  

by Anonymous User

Bill IEach year comes a new way to display fast feature layers, but so far nothing has met the test.  This year... I think we might be on to sometihng with 'feature service tilling'. I'm excited.

I'll run through the options and why the present options do not work.  WebGL is a no-go, web-workers limitation. Crashes the tab, and requires webGL.

Feature layers by themselves, too slow unless you have like 5 points on a map or a few users at a time. I know I'm exaggerating but not by much.  For example 200,000 polygons accessed by the public in a county, with potential for hundreds of users per second, no way. Or even just streets.  So that's not a tall order that is a regular piece of data for a county.   I have watched feature layers peg the server and bring all viewers to a halt, 10.2 to 10.6.  So for now I always use dynamic aka map image layers.

Hosted data all on AGOL - Won't happen for most Orgs for various reasons e.g. security, credits etc but for me, the biggest reason is no layer grouping is possible of layers in webmaps. The only way to group layers is to publish an MXD.  When they implement that I think it will immediately generate new storage credit revenue for Esri. So I know they're working steadfastly on that, and I know it is hugely looked forward to by everyone. Nevertheless, not a pattern for most of my cases.

I could create a vector tile layer and script it to tile daily and pair it with a 'buddy' feature layer for query and identify popups but I don't have time to do that for every layer. In fact, originally I thought that is what I thought vector tiles were. Until I realized they don't really have 'attributes' per se, even though there is limited attribute storage it gets baked in to the tile in a static manner.

Also we don't create our own basemaps. Esri's are fine. We do community maps. I just want the streets, parcels etc as tiled feature layer so they'll load fast and be there for users if they need to see up-to-the-day version of the roads. Serving our roads as a regular feature layer, no way could a feature layer handle that in a multi user viewer. And we have big iron, hundreds of gigs of RAM dozens of CPU and I pool to 0 on unused service etc etc.

But ...   we have a new potential savior! -  'feature service tiling'  it is available for hosted now. It should be coming to 10.7.x let's just say or maybe a version thereafter. It will tile the display portion of the layers to the data store in Portal. Heck to the yes. 

Kelly - I realized another related idea.. We should be able to load balance services in Server Manager.

I should be able to set priority by service. Perhaps at least an ordinal number or better a % of CPU / RAM / bandwidth.  Kind of like how Hyper-V can prioritize virtual machines. And perhaps even dynamic smart load balancing or balancing and differentiation against different subnets or clients and requester IPs.  Should probably be fast-tracked for 10.8.  I'll make an idea if there isn't one.   I'm sure I could finagle that with web adapter and other methods with the web server IIS but at the moment I have to prioritize getting ready for 10.7 and Portal. (because.. feature layer tiling and dashboards....   )

MalcolmMeyer2

WebGL is supported in all major browsers, unless you need to support IE.

Also...

Until I realized they don't really have 'attributes' per se, even though there is limited attribute storage it gets baked in to the tile in a static manner

Vector Tiles have attributes, not sure what you mean here. You can see the attributes when you look at the tile source in your browser dev console. It is garbled due to being in PBF format, but the data is there.

  

ADAMSVILLE"   2¶Ô‰ 7A" 
œÏ-²VA@" („ "  ùŒúÚ齫?"

  

VILLAGE OF"&
$280eb702-fb71-11e9-be56-bd9b2914f465"
70"

  

WASHINGTON"  £Õ3â ÿÆA"  ç°VȉLÑ@" (À!"  Ç–«@©­;@"&
$280f7a50-fb71-11e9-be56-bd9b2914f465"
38"
MADISON"  Úƒ÷ wèÇA"  Κi #üÑ@" (½ "    TzžÆ<@"&
$281371f0-fb71-11e9-be56-bd9b2914f465

You can set which attributes get pushed to the vector tile cache by setting the "highlight" flag in the data properties in ArcGIS Pro, if that is where you are creating your vector tile cache. I am guessing one of the reasons the Esri has not implemented popups for vector tiles is due to wanting to build a better mousetrap instead of just using what works for Leaflet, Mapbox and OpenLayers, but maybe there are technical limitations as well. Still it would be great to see this feature added.