Ваша первая проблема заключается в том, что вы переписываете $range
при каждом проходе цикла с помощью следующей строки:
$range = [];
Вы должны переместить эту строку за пределы цикла. т.е.
$wa_startindex = 0;
$range = [];
while(!$reservALL->atEnd()) {
...
У вас также есть проблемы с загрузкой данных в $range
. Вы помещаете в него массивы вместо отдельных значений. Измените этот код:
foreach ($dateRange as $date) {
$range[] = $date->format($format);
$result = array_unique($range, SORT_REGULAR);
}
array_push($range, $result);
на
foreach ($dateRange as $date) {
$range[] = $date->format($format);
}
, а затем в конце цикла вызовите array_unique
:
...
}
$range = array_unique($range);
$reservALL->moveFirst(); //return RS to first record
Можно хотеть изучить что-то как Geoserver или Mapserver. Они - клоны карты Google, и многое другое.
Вы могли генерировать наложение, которое Вы любите, и Геосервер (я думаю, что mapserver делает также), может дать Вам KML, PDF, png, и другой вывод для смешивания карт, или Вы могли генерировать целую карту собой, но это занимает время.
Не уверенный, почему Вы хотите перейти к наложению GIF/PNG, можно сделать это непосредственно в KML. Я предполагаю, что большая часть Вашей проблемы производительности вызывалась точками вне текущего представления пользователя, т.е. пользователь смотрит на Нью-Йорк, но у Вас есть точки в Лос-Анджелесе, которые тратят впустую память, потому что они не видимы. Если у Вас действительно будет 16 000 точек, которые все видимы сразу для типичного затем да, то необходимо будет преследовать другую стратегию.
Если бы вышеупомянутое применяется, процедура была бы следующие:
Это не могло бы решить Вашу точную проблему здесь, но для связанных проблем Вы могли бы также изучить Google Static Maps API. Это позволяет Вам создавать файл статического изображения с placemarkers на нем, который загрузится очень быстро, но не будет иметь интерактивности обычной карты Google. Из-за пути API разработан, однако, он не может обработать в какой-либо степени 16 000 точек ни один так, что необходимо было бы все еще отфильтровать к представлению.
Я не знаю, как тариф, который Вы со своим проектом, но возможно можно смотреть на GeoDjango? Это изменило выпуск Django, включает все виды инструментов для хранения местоположений; преобразуйте координаты и карты дисплея, простой способ. Offcourse Вам нужны некоторый опыт Python и сервер для работы его, но после того как Вы приобрели навык Django, он работает быстрый и хороший.
Если Вы просто хотите решение для своей попытки задач группировать Ваши результаты на более низких уровнях масштабирования, хороший пример этой реализации может быть найден здесь.
OpenLayers является большой JavaScript frontend к нескольким услугам по отображению или Вашим собственным серверам карты. Версия 2.7 была просто выпущена, который добавляет некоторые довольно удивительные опции и средства управления.
Это - жесткое. Можно использовать пользовательский tilesets с Google Maps, но Вам все еще нужен некоторый способ генерировать мозаики (кроме вручную).
Я боюсь, что это - все, что я имею = /