1. Скачанный раннее архив распаковать в любое удобное место, в нём содержится две папки SyncApp(приложение) и SyncExt(расширение):
2. Установить скачанный браузер Google Chrome Dev
3. После завершения установки запустить браузер и перейти в раздел расширений, для этого необходимо зайти в Меню -> Дополнительные инструменты -> Расширения:
4. На открывшейся странице необходимо включить режим разработчика, сделать это можно нажав на переключатель Режим разработчика в правом верхнем углу:
5. Далее нужно указать браузеру путь к SyncApp и SyncExt, нажав на кнопку Загрузить распакованное расширение в левом верхнем углу:
6. В появившемся окне выбрать папку SyncApp и нажать на Выбор папки, тоже самое сделать для папки SyncExt:
Если всё сделано правильно то на странице расширения появится наше расширение и приложение:
7. Для удобства при дальнейшей работе с синхронизацией необходимо закрепить расширение на панеле браузера, для этого в правом верхнем углу нажимаем на иконку пазла и закрепляем расширение:
8. Далее необходимо нажать кнопку Подробнее там, где написано Приложение и название приложения Сервер синхронизации, откроется страница с таким содержанием:
Здесь необходимо выделить и скопировать Идентификатор, как показано на изображении выше.
9. Далее нажимем на иконку расширения, чтобы открыть меню настроек, в появившемся окне вставляем скопированный ранее идентификатор в поле ID приложения и нажимам на кнопку Подключиться к приложению. Если всё сделано правильно то напротив Статус приложения: будет написано Подключено:
Данную настройку необходимо выполнить только в момент установки, расширение запоминает настройки и в дальнейшем не требует каких-либо вмешательств, запуск происходит автоматически при откртии страницы синхронизации, состояние расширения видно по иконке.
При необходимость, в окне расширения, нажатием на переключатель Отправлять в TQT, можно включить обратную отправку рассматриваемой области карты в TQT, чтобы при изменении области карты в браузере в TQT отправлялась команда для синхронизации.
Нажатием на логотик можно быстро перекти на страницу выбора зеркал для синхронизации.
Если расширение правильно настроено, то при открытии страницы синхронизации иконка расширения станет цветной и на ней появится надпись с красным фоном, это порт для подключения TQT, по умолчанию 24081
При успешном подключении TQT к расширению надпись с портом на иконке расширения станет синей.
Карта серая - не подключена страница для синхронизации (подключение происходит автоматически при открытии необходимой страницы в браузере).
Карта цветная - страница для сихронизации успешно подключена.
Надпись с портом на красном фоне - TCP-сервер включен и ожидает подключения TQT.
Надпись с портом на синем фоне - TQT успешно подключён к расширению и готов к передаче данных.
Поддерживаемые браузеры:
При включении браузера расширение подуключается к собственному приложению, которое запускает TCP-сервер для прослушивания порта 24081 (по умолчанию) на интерфейсе 127.0.0.1
Обмен данными между расширением и TQT осущесвляется через TCP-соединение созданное приложением. Расширение выступает в качестве получателя и отправителя, так же настройщика приложенияю. Приложение выступает в роли TCP-сервера и поддерживает обмен данными между TQT и расширением.
Перемещение карты на сайте следом за внешней картой
Чтобы сменить положение карты в активной вкладке браузера нужно отправить аддону сообщение с охватом.
Например,
E40.1525210173091338;55.1893079745270754;42.1051069168758545;56.1909459074464337
Обмен данными происходит в текстовом формате.
Сообщения
разделяются символом переноса строки \n (0x13).
Формат сообщения охвата карты: 'E' xmin ';' ymin ';' xmax
';' ymax
Т.е. символ "E" (англ.) после которого идут 4 координаты охвата в текстовом виде,
разделенные символом ; (точка с запятой).
Координаты передаются в проекции EPSG:4326.
Перемещение внешней карты следом за картой на сайте
Аддон, в свою очередь, отправляет сообщения клиенту в том же формате после каждого перемещния карты пользователем в браузере.
Дополнительная информация
TCP-сервер может включаться и выключаться довольно часто (при включении и выключении аддона),
клиент должен быть готов к внезапным обрывам соединения.
Потестировать отправку сообщения на python можно так:
import socket import sys ip = '127.0.0.1' port = 24081 msg = 'E38.44463494569489;55.848514520572905;38.450911314789735;55.85041472577055'; if len(sys.argv) > 1: msg = sys.argv[1] s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(0.1) s.connect((ip,port)) msg = msg + "\n" s.send(msg) print "Sent (%s): %s\n" % (len(msg), msg) s.close()
Потестировать приём сообщений на python можно так:
import socket import sys ip = '127.0.0.1' port = 24081 def linesplit(socket): buffer = socket.recv(4096) buffering = True while buffering: if "\n" in buffer: (line, buffer) = buffer.split("\n", 1) yield line else: more = socket.recv(4096) if not more: buffering = False else: buffer += more if buffer: yield buffer s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip,port)) for msg in linesplit(s): print msg