Я думал, что я бы поставил это здесь, поскольку он, похоже, является популярной точкой посадки для тех, кто начинает использовать API Карт Google. Несколько маркеров, отображаемых на стороне клиента, вероятно, являются падением многих характеристик приложений сопоставления. Трудно тестировать, исправлять и в некоторых случаях даже устанавливать проблему (из-за различий в реализации браузера, оборудования, доступного клиенту, мобильных устройств, список продолжается).
Самый простой способ начать эту проблему - использовать решение кластеризации маркеров. Основная идея состоит в том, чтобы группировать географически похожие местоположения в группу с количеством отображаемых точек. По мере того, как пользователь приближается к карте, эти группы расширяются, чтобы показывать отдельные маркеры внизу.
Возможно, проще всего реализовать библиотеку markerclusterer . Основная реализация будет следующей (после импорта библиотеки):
Маркеры вместо добавления непосредственно к карте добавляются в массив. Затем этот массив передается в библиотеку, которая обрабатывает сложные вычисления для вас и прикрепляется к карте.
Не только эти реализации значительно увеличивают производительность на стороне клиента, но также во многих случаях приводят к более простому и менее загроможденному пользовательскому интерфейсу и более простому перевариванию данных в больших масштабах.
Другие версии доступны в Google.
Надеюсь, что это поможет некоторым из тех, кто новее к нюансам картографии.
Вам нужна функция str_pad()
, чтобы добавить к вашим индексам ведущие нули.
$new_index = str_pad($index, 5, "0", STR_PAD_LEFT);
Где $index
ваш инкрементирующий индекс в круге, $new_index
является вашим индекс с ведущими нулями.
В качестве альтернативы, в случае, если вас это интересует, вы можете использовать sprintf для удобного ввода с 0 до определенного числа.
$numbers = array(0,1,11,111,1111,11111,11111);
$padded = array();
foreach($numbers as $num)
$padded[] = sprintf('%1$05d', ++$num);
print_r($padded);
У PHP почти всегда есть множество способов сделать то же самое вещь. :)
$number = 1;
$number++;
echo str_pad($number, 5, "0", STR_PAD_LEFT); //00002