Papazol » 29 дек 2012, 21:30
Собственно, изначальный смысл данной ветки уже давно потерян. Та dll-ка, что написана топикстартером, давно не работает. Всё из-за изменений, внесённых в саму SAS.Планету. Поэтому, если кому Яндекс.Пробки нужны реально, в движении, милости прошу пользовать то, что описано чуть выше. Для понимания алгоритма работы всего этого приведу краткое описание.
1. Существует zmp, позволяющий скачать изображения пробок на данный момент времени. Если включить слой Яндекс.Пробки, то изображения пробок появятся на экране. Если мы будем двигаться по городу, то новые тайлы, которых раньше не было на экране, будут скачиваться. На этом хорошее заканчивается.
2. Чтобы пробки обновлялись, нужно каждый раз скачивать изображения по-новой. Этому препятствует факт наличия уже скачанных изображений в кэше. Если установлен режим "интернет и кэш", тайлы, уже имеющиеся в кэше, больше скачиваться не будут. Если установить режим "Интернет", то наряду с тайлами пробок будут скачиваться и тайлы карты, что совсем не здорово. Поэтому идём на хитрость: через нужный промежуток времени стираем весь кэш пробок, заставляя программу скачать тайлы по-новой.
3. Чтобы программа начала скачивать тайлы по-новой, даже когда кэш уже стёрт, необходимо обновить экран. Это можно сделать двумя способами: либо сдвинуть карту на некоторое достаточное расстояние, либо изменить масштаб. Первый способ выглядит более предпочтительным, и в ранних версиях программы можно было обновить экран, однократно нажав на любую кнопку со стрелкой, а затем нажав кнопку со стрелкой, направленной в обратную сторону. Теперь же однократного нажатия стало недостаточно, а держать кнопку долго нет смысла, потому что расстояние, на которое сдвинется карта, неопределённое. А надо ведь ещё и вернуть всё обратно. Пришлось использовать изменение масштаба.
4. Итак, чтобы пробки обновлялись, делаем следующее: отмеряем заданный промежуток времени, удаляем кэш пробок, обновляем экран.