Ejemplo n.º 1
0
        public static NodeAddress Create(NodeAddressCell cell)
        {
            var address     = new NodeAddress();
            var addressCell = cell;

            while (addressCell != null)
            {
                address.Path.AddFirst(addressCell);
                addressCell = addressCell.GetAncestor();
            }
            return(address);
        }
Ejemplo n.º 2
0
        public Node GetNode(Byte zoomLevel, GeoPoint center)
        {
            var address       = NodeAddress.Create(zoomLevel, center);
            var clustererNode = Root;
            var node          = address.Path.First;

            while (node != address.Path.Last)
            {
                var addressCell = node.Value;
                var x           = addressCell.X % 2;
                var y           = addressCell.Y % 2;

                clustererNode = clustererNode.GetChildNode(x, y);
                node          = node.Next;
            }

            clustererNode = clustererNode.GetChildNode(node.Value.X % 2, node.Value.Y % 2);
            clustererNode.GatherObjects();
            return(clustererNode);
        }