Загружает файл ESRI Shape.
Краткое описание
bool loadShapeFile(string strFile, string strLayer[, string strOption1, string strOption2,…]);
Параметры
Параметры | Описание |
strFile | Файл Shape (формы/графические объекты). |
strLayer | Имя слоя, на который будет загружен файл Shape. |
strOption | Аргумент strOptions необходим в том случае, если имеется слой, прорисовываемый в фоновом потоке. Фоновый рисунок необходимо использовать, если слой слишком большой для прорисовки на переднем плане. Рисунок в фоне означает, что будет запущен поток, который займет большое количество времени на прорисовку всего слоя. Параметр «strOption» является комбинацией следующих возможных строк: «THREAD» Указывает на то, что рисунок будет выполнен с помощью потока. «DISKBASED» Указывает, что рисунок будет выполнен с помощью потока, и что формы и информация из базы данных будет прочитана непосредственно с диска (т.е. данные не будут предварительно загружаться в память). Рисунок «Diskbased» определенно будет выполняться медленнее, однако позволит сохранить большой объем памяти ОЗУ. («DISKBASED» означает то же, что и при совмещении опций «DISBASESSHAPES» и «DISKBASEDDATABASE»). «DISKBASEDSHAPES» Указывает, что рисунок будет выполнен с помощью потока и что формы будут прочитаны непосредственно с диска (т.е. они не будут предварительно загружаться в память). Рисунок «Diskbased» определенно будет выполняться медленнее, однако позволит сохранить большой объем памяти ОЗУ. «DISKBASEDDATABASE» Указывает, что рисунок будет выполнен с помощью потока и что информация из базы данных будет прочитана непосредственно с диска (т.е. она не будет предварительно загружаться в память). Рисунок «Diskbased» определенно будет выполняться медленнее, однако позволит сохранить большой объем памяти ОЗУ. «FILLCOLOR=<цвет слоя>» Указывает цвет, который используется для заливки полигона на слое. «MINWIDTH=xx» Минимальная ширина слоя. «LINECOLOR=<цвет слоя>» Цвет линий слоя. «VISIBLE=0/1» Показывает/скрывает слой. «FROM=» Указывает коэффициент масштабирования, начиная со значения которого слой будет отображаться. Данный коэффициент может быть рассчитан с учетом текущего правого, левого положения и ширины виджета средства просмотра GIS. Значения правого и левого положения определяются запросами «getXRight()» и «getXLeft()». Ширина виджета средства GIS отображается в графическом редакторе GEDI. Расчетная формула следующая: Коэффициент масштабирования = ширина виджета / (XRight — XLeft) Пример: Правое положение = 20.4 Левое положение = 8.4 Ширина виджета средства GIS = 714 714/ (20.4 — 8.4) = 59.5 «TO=» Коэффициент масштабирования, до значения которого слой будет отображаться. Пример: Правое положение = 15,8 Левое положение = 11,7 Ширина виджета средства GIS = 714 714 / (15.8 — 11.7) = 174.15 |
Описание
Функция загружает файл ESRI Shape, который состоит 4 различных файлов:
- Фактические графические объекты (файл shp)
- Файл указателей (shx). Файл shx это файл указателей, который содержит позиции байтов каждого графического объекта. Он используется средством GIS Viewer при загрузке отдельных графических объектов из файла .shp.
- Файл DBF содержит информацию по каждому графическому объекту. Файл DBF это файл базы данных формата IV. В него входят данные по каждому графическому объекту, записанному в файле. Обычно файл DBF содержит ‘имена’ графических объектов, при этом он так же может включать любые информационные поля.
- Файл prj. *.prj — это файл ASCII в котором содержится информация о координатной системе карты.
Бесплатные файлы ESRI Shape можно найти в Интернете. См. http://www.mapcruzin.com/download_mapcruz.php
или http://www.gfk-geomarketing.de/en/digital_maps/digital_map_samples/shape.php.
ПРИМЕЧАНИЕ
Сохраняйте карты в одной из подпапок проекта, например, в папке data/gis. Учтите, что для загрузки карты необходимо чтобы все четыре файла были сохранены в одном каталоге.
ПРИМЕР
На примере ниже загружаются несколько файлов Shape, затем они добавляются как слои в виджет средства просмотра карт GIS.
main()
{
string strMap = «Gis/country»;
getPath(DATA_REL_PATH, strMap + «.shx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.shp»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbn»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.prj»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.lyr»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.gif»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.dbf»); // загрузить файл
this.loadShapeFile(getPath(DATA_REL_PATH) + strMap, «COUNTRY»);
strMap = «Gis/lakes»;
getPath(DATA_REL_PATH, strMap + «.shx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.shp»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbn»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.prj»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.lyr»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.gif»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.dbf»); // загрузить файл
this.loadShapeFile(getPath(DATA_REL_PATH) + strMap, «lakes»);
strMap = «Gis/rivers»;
getPath(DATA_REL_PATH, strMap + «.shx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.shp»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbn»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.prj»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.lyr»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.gif»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.dbf»); // загрузить файл
this.loadShapeFile(getPath(DATA_REL_PATH) + strMap, «rivers»);
strMap = «Gis/cities»;
getPath(DATA_REL_PATH, strMap + «.shx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.shp»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbn»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.prj»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.lyr»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.gif»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.dbf»); // загрузить файл
this.loadShapeFile(getPath(DATA_REL_PATH) + strMap, «cities»);
}
На следующем примере происходит загрузка одного файла Shape. Файл загружается с диска (режим «diskbased»). Карта будет использовать зеленый цвет заливки, черный цвет линий и будет отображаться при коэффициентах масштабирования от 2 до 10 (ширина окна будет либо в градусах, либо в метрах, в зависимости от используемой карты).
main()
{
strMap = «Gis/country»;
getPath(DATA_REL_PATH, strMap + «.shx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.shp»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbx»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.sbn»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.prj»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.lyr»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.gif»); // загрузить файл
getPath(DATA_REL_PATH, strMap + «.dbf»); // загрузить файл
GisViewer_ewo1.loadShapeFile(getPath(DATA_REL_PATH) + strMap, «COUNTRY», «DISKBASED», «FILLCOLOR=green», «LINECOLOR=black», «VISIBLE=1», «FROM=2», «TO=10»);
}
Используется для объекта:
Средство просмотра карты геоинформационной системы (GIS)
См. также