private static void OnElementLoadedHandler(int tag, long id, IntPtr tagPtr, int tagCount,
                                                   IntPtr vertexPtr, int vertexCount, IntPtr stylePtr, int styleCount)
        {
            Tile tile;

            if (!Tiles.TryGetValue(tag, out tile) || tile.IsDisposed)
            {
                return;
            }

            // NOTE see note above
            var vertices = MarshalUtils.ReadDoubles(vertexPtr, vertexCount);
            var tags     = MarshalUtils.ReadStrings(tagPtr, tagCount);
            var styles   = MarshalUtils.ReadStrings(stylePtr, styleCount);

            MapDataAdapter.AdaptElement(tile, _observers, _trace, id, vertices, tags, styles);
        }