Esri / esri-leaflet-vector

Display ArcGIS Online vector basemaps w/ Esri Leaflet
Apache License 2.0
56 stars 57 forks source link

tiledMapLayer doesn't show when vectorBasemapLayer is in use #98

Closed dandormont closed 3 years ago

dandormont commented 3 years ago

Hi, I have a feature layer in ArcGIS Online which I have published as a Map Service. In Esri Leaflet, the tiledMapLayer does not show when I have a vector basemap layer underneath it. I created a Codepen here: https://codepen.io/dandormont-the-decoder/pen/OJmQZZy?editors=100

As you can see, a few features from my tile layer show towards the right side of the map. But if you comment out the L.esri.basemapLayer and uncomment the L.esri.Vector.basemapLayer, the tiledMapLayer no longer shows.

Curiously, if you zoom the map in and out with the vector basemap in place, you can occasionally see the tiledMapLayer flicker in and out, but it never shows correctly. I tried raising the zIndex on the tiledMapLayer but that does not help.

This is using esri-leaflet 3.0.1 and esri-leaflet-vector 3.0.0

dandormont commented 3 years ago

Note that I could use a vector tile layer instead, in fact I would prefer to, but I ran into a different bug with vector tile layers. Unfortunately I am so far not able to reproduce that bug using a dataset that I am permitted to share publicly, so I can't open an issue for it here.

jwasilgeo commented 3 years ago

Hi @dandormont, have you looked into changing the tiledMapLayer's pane property? I just tried it with (a) the tiled basemap layer and separately (b) the vector basemap layer and I could see and keep the tiledmapLayer on top of it.

https://leafletjs.com/reference-1.7.1.html#map-pane

For example:

L.esri.tiledMapLayer({
  url: "https://services3.arcgis.com/X9Qdrg0PKYc9y49o/arcgis/rest/services/SPCAD_Parcels_Appr_Yr_2021_Updates/MapServer",
  pane: "overlayPane" // or another one available from Leaflet or make your own
}).addTo(map);

I'll close assuming this will work for you for this particular behavior described here.