Google Chrome расширение для синхронизации положения карты

Скачать плагин для браузера

Установка расширения:

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
			

QGIS Plugin

* Двигается только карта на сайте
Содержимое архива:

  • Положить папку browsermapsync в ..\apps\qgis\python\plugins\
  • В Qgis зайти в Plugins -> Manage and Install Plugins ..., найти и включить плагин

Скачать плагин

Расширение для браузера