private void OnTransportNetworkCellAdded(TransportNetworkType networkType, TransportCellKey cellKey)
        {
            if (networkType != NetworkType)
            {
                return;
            }
            var nodeIds         = m_transportApi.GetNodeIdsForNetworkInCell(networkType, cellKey);
            var directedEdgeIds = m_transportApi.GetDirectedEdgeIdsForNetworkInCell(networkType, cellKey);
            var wayIds          = m_transportApi.GetWayIdsForNetworkInCell(networkType, cellKey);

            AddForCell(cellKey, nodeIds, directedEdgeIds, wayIds);
        }
        /// <summary>
        /// Get all TransportNode objects currently streamed in for the given transport network and cell.
        /// </summary>
        /// <param name="transportApi">TransportApi instance.</param>
        /// <param name="transportNetwork">The returned results are filtered to contain only objects belonging to this transport network.</param>
        /// <param name="cellKey">The returned results are filtered to contain only objects belonging to this cell.</param>
        /// <returns>The list of TransportNode objects for the given network and cell.</returns>
        static public IList <TransportNode> GetNodesForNetworkAndCell(this TransportApi transportApi, TransportNetworkType transportNetwork, TransportCellKey cellKey)
        {
            var nodeIds = transportApi.GetNodeIdsForNetworkInCell(transportNetwork, cellKey);
            var nodes   = new List <TransportNode>();

            foreach (var nodeId in nodeIds)
            {
                TransportNode node;
                if (!transportApi.TryGetNode(nodeId, out node))
                {
                    throw new System.ArgumentOutOfRangeException("unable to fetch TransportWay");
                }
                nodes.Add(node);
            }
            return(nodes);
        }