«loadShapeFile»

Загружает файл 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
GIS_Viewer_1.JPG
 
«TO=»
Коэффициент масштабирования, до значения которого слой будет отображаться.
 
Пример:
Правое положение = 15,8
Левое положение = 11,7
Ширина виджета средства GIS = 714
 
714 / (15.8 — 11.7) = 174.15
GIS_Viewer_2.JPG

Описание

Функция загружает файл 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.

note.gifПРИМЕЧАНИЕ

Сохраняйте карты в одной из подпапок проекта, например, в папке data/gis. Учтите, что для загрузки карты необходимо чтобы все четыре файла были сохранены в одном каталоге.

IconПРИМЕР

На примере ниже загружаются несколько файлов 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)

См. также

«loadColorFile»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *