среда, 18 февраля 2015 г.

Получение и использование нумерованных маркеров на он-лайн картах.

Дано:  Есть старые скрипты (например, Yandex API 1.1) для рисования он-лайн карт напрямую из 1С 7.7 (выполняют отображение торговых точек и маршрутов агентов на карте, скрипты шли в поставке демонстрационной конфигурации 1С 7.7 к ПО "АгентПлюс" примерно в 2012 году)

Требуется: Получить возможность нумерации серий объектов на карте, причем в разных цветах.
Сами скрипты менять не желательно (во всяком случае, на текущий момент). Иначе можно было бы воспользоваться рекомендациями Яндекс и Google, и генерировать параметры маркеров "на лету".
Текущая версия скриптов умеет только загружать в карту произвольные имеющиеся локальные иконки, так что задача намного упрощается - необходимо много-много готовых иконок, чтобы иметь возможность из загрузить в карту :)


Решение 1: Использовать имеющиеся наборы меток:
1. kml4earth - набор иконок для Google
2. https://sites.google.com/site/gmapsdevelopment/ - еще 1 набор стандартных иконок
3. https://code.google.com/p/google-maps-icons - старый проект, но наборы иконок доступны, в том числе и цифровые от 1 до 100, но не для всех цветов
4. http://mapicons.nicolasmollet.com - набор современных иконок, ссылки на другие ресурсы
5. Google map markers | CTAPbIu_MABP's BLOG - полезный блог, в том числе ссылки на большое количество маркеров, иконок и других элементов управления


Решение 2: Использовать генерацию изображений на метках:
Решение найдено здесь. Автор решения Thydzik (по ссылке - есть исходный код на PHP).
Вот что сообщает автор:
Theses markers are totally dynamic and you can create whatever balloon icon you want but you need to host some files on your server to make it work. Just change the URL like: thydzik.com/thydzikGoogleMap/markerlink.php?text=12&color=5680FC where 12 is the text and 5680fc is the hexadecimal color code. Please note that you can't hotlink from your personal "My Maps" (maps.google.com). It can be done in 2 ways : 
    1. Use Google Maps API so that dynamic icon generation can work 
    2. Save static icons, and host them your server

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

Пример: Вернуть маркер с текстом 1 голубого цвета:

Результат: 
 


Стандартные цвета: красный: FC6355, : 55D7D7, желтый: FCF356, фиолетовый: 7D54FC, розовый: E14E9D, оранжевый: EF9D3F, черный: 000000, коричневый: 9E7151 
Подбирать цвета можно здесь: http://www.color-hex.com/

Еще примеры результатов: 






Чтобы закачать сразу большой диапазон иконок с нумерацией - используем DownloadMaster
1. Выполняем команду "Закачка - Добавить группу закачек"
2. Указываем модифицированный адрес:
где:
   ХХХХХХ - код выбранного цвета
   $ - подстановочный символ, указывающий, в какое место адреса надо вставить изменяющееся значение счётчика.
3. Указываем диапазон изменения счетчика, например, от 1 до 100
4. Стартует загрузки и получаем 100 файлов иконок с номерами.
5. По желанию, выполняем групповое переименование загруженных маркеров с помощью бесплатного FastStone Photo Resizer.


Комментариев нет: