Sheldhur
чё там может не успеть добавиться? :)
Vitaly
Возможно проблема в том что браузер не успел отрисовать его?
Vitaly
http://taligarsiel.com/Projects/webkitflow.png
Sheldhur
возможно, но у меня ещё 9 таких компонент, у них всё норм почему-то
Pavel b
Подскажите как лучше хешировать координаты из gmaps? Есть большой список объектов и их нужно разложить по координатам. Там много объектов с одинаковыми координатами. Как это реализовать в js?
Oleg
Объект, ключи это координаты одним значением, значения - массивы, хранящие объекты карты
Pavel b
Oleg
{'100.500_300.700': [Obj1, Obj2, Obj3]}
Oleg
Это если задача упаковать
Oleg
А если другая - нужны подробности
Pavel b
{'100.500_300.700': [Obj1, Obj2, Obj3]}
ну понятно. Я в общем так и делал. Вчера только вот на хабре читал в коммнетах про алгоритмы и такой подход залошили. Писали что-то про красно-черные деревья. Вот и спрашиваю. может кто может объяснить как это применить?
Pavel b
https://habrahabr.ru/post/322602/#comment_10093554
Oleg
Oleg
Если это просто упаковать - мой подход лучше
Anonymous
Oleg
Если там надо расстояния высчитывать, поиск там
Oleg
То уже нет
Oleg
Через мап можно ещё, да
Pavel b
нет, просто хранить и иногда проходиться по списку
Oleg
Вариант с мап даже лучше будет
Oleg
А то я олдскульщик сильно
Pavel b
Pavel b
ну и я так же. Ну как бы расти нужно :)
Anonymous
Хотя стоп.
Anonymous
Не. Мап работать не будет.
Oleg
Да
Oleg
Не будет
Oleg
Потому что ссылки 😄
Anonymous
Там же ==
Oleg
Вот так вот, сбил меня с толку
Anonymous
=))
Oleg
Объекты лучше
Anonymous
А какие координаты? Там у тебя дискретные значения?
Pavel b
ну 6 цифр после запятой
Anonymous
Они же попадут в разные категории.
Pavel b
да, попадут
Anonymous
Тебе нужен механизм агрегации.
Pavel b
тут не очень важно на этом этапе
Anonymous
Лучше сразу работай с БД.
hlomzik
Pavel b
в общем просто хотел проверить не совсем ли ужасно использовать координаты как key в объекте. Спасибо
Anonymous
PostgreSQL и монга умеют с гео-координатами.
Pavel b
так мне на front это нужно :)
Pavel b
с PostgreSQL они и приходят
Anonymous
Предлагаю определить дискретные диапазоны и выбирать туда объекты.
Pavel b
Oleg
Если ещё и группировать что рядом - это соооовсем другая задача
hlomzik
Можно без кластеризации а по-тупому с округлением. Разбивая мир на квадраты по сути
hlomzik
Так а в чём проблема с мапами?
Pavel b
Oleg
Поясните
Массивы передаются по ссылке. Чтобы получить потом элемент - нужно обратится этой ссылкой. Если сделать массив с теми же значениями - это будет другой массив. Необходимость хранения ссылок полностью убивает смысл в мапе в данном случае и в большинстве других - массивы, объекты, да и все не примитивные значения как ключи мапы - имеют очень узкий круг применения.
hlomzik
Anonymous
Pavel b
ну тогда и getObj будет Array<Object>?
hlomzik
Pavel b
А что будет быстрее работать? Ну в плане O(n)?
hlomzik
А, да. Поправил.
Я бы в основном массиве хранил объекты по одному, плюс индекс по координатам. И возврат массива в getObjects. Но зависит от задач.
Anonymous
Anonymous
Да, изначально, нужно хранить начальные данные.
Pavel b
такой подход все еще хорош? :)
Pavel b
{'100.500_300.700': [Obj1, Obj2, Obj3]}
Anonymous
class Objects {
objects: Array<{
lat: number,
lon: number,
indexDiscret: {
lat: number,
lon: number,
},
obj: Object,
}>;
getObj: (lat: number, lon: number) => Object;
addObj: (lat: number, lon: number, obj: Object) => this;
}
Pavel b
что такое indexDiscret?
Anonymous
Anonymous
Индекс дискретных значений координат (т.е., в какую категорию попадает тот или иной объект).
Pavel b
угу, ясно. А тогда как добавлять туда object?
Anonymous
Pavel b
ну т.е. нужен удобный механизм добавить объект, посчитать сколько объектов по определенным координатам и получить их
Anonymous
Поправил.
Anonymous
Oleg
А ещё если объекты далеко то нужно учесть то что земля сфера
Pavel b
Anonymous
Можно и без indexDiscret. Но тогда для поиска потребуется болше вычислений.
Pavel b
Anonymous