Храня объекты для определения местоположения x, y координаты

При использовании next.js необходимо учитывать, что перенаправления должны выполняться в методе getInitialProps, чтобы избежать ненужных компонентов рендеринга.

например

const MyComponent = ()=>{
  return <tag> {/* ... */} </tag>
}
MyComponent.getInitialProps = ({res}) => {
  if (res) { 
    /* serve-side */
    res.writeHead(302, {
    Location: 'http://example.com'
  })
  res.end()
  } else {      
   /* client-side */
    Router.push('http://example.com')
  }
  return {}
}
16
задан Derek Lewis 25 September 2008 в 10:38
поделиться

6 ответов

Деревья квадрантов , кажется, решают определенную проблему, которую я спросил. Kd-деревья являются более общей формой для любого количества размеров, а не всего два.

R-деревья могут также быть полезными, если хранившие объекты имеют ограничительный прямоугольник, вместо того, чтобы быть только что простой точкой.

общий термин для подобных структур Пространственный Индекс .

, Там реализация Java Дерево квадрантов и R-дерево .

14
ответ дан 30 November 2019 в 22:02
поделиться

дерево квадрантов А структура , который обычно используется для этого.

2
ответ дан 30 November 2019 в 22:02
поделиться

Общий термин Пространственный Индекс . Я предполагаю, что необходимо выбрать согласно существующие реализации .

4
ответ дан 30 November 2019 в 22:02
поделиться

Взгляните на Kd-деревья .

1
ответ дан 30 November 2019 в 22:02
поделиться

Вы могли поместить все x провода в карту и y провода в другой карте, и иметь точку значений карты к объекту.

        TreeMap<Integer, TreeMap<Integer, Point>> xMap = new TreeMap<Integer, TreeMap<Integer, Point>>();
        for (int x = 1; x < 100; x += 2)
            for (int y = 0; y < 100; y += 2)
                {
                    Point p = new Point(x, y);
                    TreeMap<Integer, Point> tempx = xMap.get(x);
                    if (tempx == null)
                        {
                            tempx = new TreeMap<Integer, Point>();
                            xMap.put(x, tempx);
                        }
                    tempx.put(y, p);
                }
        SortedMap<Integer, TreeMap<Integer, Point>> tempq = xMap.subMap(5, 8);
        Collection<Point> result = new HashSet<Point>();
        for (TreeMap<Integer, Point> smaller : tempq.values())
            {
                SortedMap<Integer, Point> smallerYet = smaller.subMap(6, 12);
                result.addAll(smallerYet.values());
            }
        for (Point q : result)
            {
                System.out.println(q);
            }
    }
0
ответ дан 30 November 2019 в 22:02
поделиться

Простая реализация QuadTree на C # (легко перевести на java) http://www.codeproject.com/KB/recipes/QuadTree.aspx

1
ответ дан 30 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: