Здравствуйте! В настоящее время реализую соответствующее приложение с использованием Python.
Понимаю, что официальных библиотек нет, но таково требование заказчика.
Компоненты официально приобретены, корректно установлены, примеры из состава компонентов запускаются и работают.
Если есть возможность, прошу помочь с следующим вопросом - нужно осуществить отображение карты на Python.
Исходный код примера (при разработке примера использовал пример . ./SDK/X11/test1.c)
1) заголовочный mapapi_struct.py
import ctypes
class xcontext(ctypes.Structure):
_fields_ = [('Display', ctypes.c_long),
('Window', ctypes.c_long),
('GC', ctypes.c_long),
('DRAWPOINT', ctypes.c_long),]
class rect(ctypes.Structure):
_fields_ = [('x', ctypes.c_long),
('y', ctypes.c_long),
('width', ctypes.c_long),
('height', ctypes.c_long),]
2) исходный простейший пример py_gui.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
import sys
import ctypes
from PyQt4 import QtCore, QtGui
import mapapi_struct
import pprint
#pprint.pprint(sys.path)
a = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
w.resize(1280, 960)
w.setWindowTitle("Show Map")
w.show()
hlibqdmapacces = ctypes.cdll.LoadLibrary('/usr/lib64/libqdmapacces.so')
hmap = hlibqdmapacces.mapOpenMap("/usr/lib64/qt46/examples/gisdesigner11/Data/Podolsk/Podolsk .map", 0)
hdc = mapapi_struct.xcontext()
#hdc.Display =
#hdc.Window =
#hdc.GC =
#hdc.DRAWPOINT =
rect = mapapi_struct.rect()
rect.x = 0
rect.y = 0
rect.width = 900
rect.height = 900
hlibqdmapacces.mapPaint(hmap, hdc, 1, rect)
#pprint.pprint(dir(hdc))
#pprint.pprint(dir(ctypes))
sys.exit(a.exec_())
В сухом результате
mapOpenMap- работает, историю обращений к карте в лог-файл пишет.
mapPaint - не работает.
Соответственно, вопрос - что мне нужно писать в
hdc.Display =
hdc.Window =
hdc.GC =
hdc.DRAWPOINT =
из QtCore, QtGui или из PyQt4, чтобы mapPaint заработал?
--
С уважением,
Евгений.
Понимаю, что официальных библиотек нет, но таково требование заказчика.
Компоненты официально приобретены, корректно установлены, примеры из состава компонентов запускаются и работают.
Если есть возможность, прошу помочь с следующим вопросом - нужно осуществить отображение карты на Python.
Исходный код примера (при разработке примера использовал пример . ./SDK/X11/test1.c)
1) заголовочный mapapi_struct.py
import ctypes
class xcontext(ctypes.Structure):
_fields_ = [('Display', ctypes.c_long),
('Window', ctypes.c_long),
('GC', ctypes.c_long),
('DRAWPOINT', ctypes.c_long),]
class rect(ctypes.Structure):
_fields_ = [('x', ctypes.c_long),
('y', ctypes.c_long),
('width', ctypes.c_long),
('height', ctypes.c_long),]
2) исходный простейший пример py_gui.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
import sys
import ctypes
from PyQt4 import QtCore, QtGui
import mapapi_struct
import pprint
#pprint.pprint(sys.path)
a = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
w.resize(1280, 960)
w.setWindowTitle("Show Map")
w.show()
hlibqdmapacces = ctypes.cdll.LoadLibrary('/usr/lib64/libqdmapacces.so')
hmap = hlibqdmapacces.mapOpenMap("/usr/lib64/qt46/examples/gisdesigner11/Data/Podolsk/Podolsk
hdc = mapapi_struct.xcontext()
#hdc.Display =
#hdc.Window =
#hdc.GC =
#hdc.DRAWPOINT =
rect = mapapi_struct.rect()
rect.x = 0
rect.y = 0
rect.width = 900
rect.height = 900
hlibqdmapacces.mapPaint(hmap, hdc, 1, rect)
#pprint.pprint(dir(hdc))
#pprint.pprint(dir(ctypes))
sys.exit(a.exec_())
В сухом результате
mapOpenMap- работает, историю обращений к карте в лог-файл пишет.
mapPaint - не работает.
Соответственно, вопрос - что мне нужно писать в
hdc.Display =
hdc.Window =
hdc.GC =
hdc.DRAWPOINT =
из QtCore, QtGui или из PyQt4, чтобы mapPaint заработал?
--
С уважением,
Евгений.