Страница 1 из 1
Проблема переноса слоя из текста с разделителями
Добавлено: 02 апр 2010, 10:02
Variant
Иногда появляется потребность переложить проект в другую папку или разместить на другой машине. С растровыми слоями никаких проблем: QGIS ругается, что файла на месте нет, но предлагает найти его и загружает как надо. Со слоем из текстового файла такое не проходит: QGIS тоже ругается, что файла нет, предлагает найти его, но параметры импорта интерпретирует как часть имени файла, а если попытаться подправить имя до истиного, слой всё равно не загружается. Приходится каждый раз переимпортировать все такие слои заново, что не очень удобно
Наблюдалось в ревизиях 12728 и 12953 под Windows
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 02 апр 2010, 13:50
SS_Rebelious
Не издевайтесь над собой. Попробуйте в свойствах проекта выбрать сохранение относительных путей, а не абсолютных. Это очень поможет при переносе проекта

. Кроме того, можете вручную откорректировать сам файл проекта в том же блокноте и автозаменой прописать нужные пути.
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 02 апр 2010, 18:49
Максим Дубинин
Variant, я проверил, файл csv такого содержания:
У меня нормально мигрирует из папки в папку вместе с проектов в который подключен (включены относительные пути).
r13216
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 07 апр 2010, 08:09
Variant
Проблема возникает при использовании абсолютных путей. В некоторых случаях с ними всё же удобнее: когда надо проверить несколько вариантов или несколько проектов ссылается на один файл. В итоговом виде проект чистится и приводится к нормальному виду, но вот из-за глюка с загрузкой текстовых слоёв их приходится перегружать заново
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 07 апр 2010, 20:43
Максим Дубинин
дайте четкий случай для тестирования, по шагам, чтобы мы могли воспроизвести ошибку
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 08 апр 2010, 07:59
Variant
1. Создать проект. Абсолютные или относительные пути - не важно
2. Импортировать слой из текста с разделителями
3. Сохранить проект
4. Закрыть программу
5. Текстовый файл переложить в другую папку
6. Открыть QGIS, загрузить сохранённый проект
7. В ответ на предложение QGIS указать расположение текстового файла, указать его
8. Попытаться загрузить слой
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 08 апр 2010, 08:13
Максим Дубинин
вот это другое дело, подтверждаю
r13269
Еще кто-нибудь подтвердите, пожалуйста, и закинем в трекер.
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 08 апр 2010, 16:25
SS_Rebelious
Подтверждаю r13239.
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 08 апр 2010, 17:50
Максим Дубинин
Re: Проблема переноса слоя из текста с разделителями
Добавлено: 09 апр 2010, 22:09
Neo
Сам файл проекта создан по стандарту XML:
Например, мой первый проект
Код: Выделить всё
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis projectname="" version="1.3.0-Mimas" >
<title></title>
<mapcanvas>
<units>degrees</units>
<extent>
<xmin>7287504.140444</xmin>
<ymin>5544479.551528</ymin>
<xmax>7314058.782406</xmax>
<ymax>5559537.638977</ymax>
</extent>
<projections>0</projections>
<destinationsrs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<epsg>4326</epsg>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</destinationsrs>
</mapcanvas>
<legend>
<legendlayer open="true" checked="Qt::Checked" name="Rivers" >
<filegroup open="true" hidden="true" >
<legendlayerfile isInOverview="0" layerid="Rivers20090922195410218" visible="1" />
</filegroup>
</legendlayer>
<legendlayer open="true" checked="Qt::Checked" name="Roads2" >
<filegroup open="true" hidden="true" >
<legendlayerfile isInOverview="0" layerid="Roads220090922194615265" visible="1" />
</filegroup>
</legendlayer>
<legendlayer open="true" checked="Qt::Unchecked" name="Settlements" >
<filegroup open="true" hidden="true" >
<legendlayerfile isInOverview="0" layerid="Settlements20090922201038328" visible="0" />
</filegroup>
</legendlayer>
<legendlayer open="true" checked="Qt::Checked" name="Hidro" >
<filegroup open="true" hidden="true" >
<legendlayerfile isInOverview="0" layerid="Hidro20090921110323500" visible="1" />
</filegroup>
</legendlayer>
<legendlayer open="true" checked="Qt::Checked" name="M-37-061-mod5_YX" >
<filegroup open="true" hidden="true" >
<legendlayerfile isInOverview="0" layerid="M_37_061_mod5_YX20090921102231453" visible="1" />
</filegroup>
</legendlayer>
</legend>
<Composer>
<Composition printResolution="300" paperWidth="297" snapGridOffsetX="0" snapGridResolution="0" snapGridOffsetY="0" snapping="0" paperHeight="210" />
</Composer>
<projectlayers layercount="5" >
<maplayer minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" geometry="Polygon" type="vector" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0" >
<id>Hidro20090921110323500</id>
<datasource>I:/SE2/QGIS_Pr/1/Hidro</datasource>
<layername>Hidro</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<epsg>4326</epsg>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider encoding="System" >ogr</provider>
<edittypes>
<edittype type="0" name="Area" />
<edittype type="0" name="Name" />
</edittypes>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<singlesymbol>
<symbol>
<lowervalue></lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>2</pointsize>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="18" blue="94" green="15" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.36</outlinewidth>
<fillcolor red="105" blue="195" green="111" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</singlesymbol>
<labelattributes>
<label fieldname="" text="Label" />
<family fieldname="" name="MS Shell Dlg 2" />
<size fieldname="" units="pt" value="12" />
<bold fieldname="" on="0" />
<italic fieldname="" on="0" />
<underline fieldname="" on="0" />
<color fieldname="" red="0" blue="0" green="0" />
<x fieldname="" />
<y fieldname="" />
<offset x="0" y="0" units="pt" yfieldname="" xfieldname="" />
<angle fieldname="" value="0" auto="0" />
<alignment fieldname="" value="center" />
<buffercolor fieldname="" red="255" blue="255" green="255" />
<buffersize fieldname="" units="pt" value="1" />
<bufferenabled fieldname="" on="" />
<multilineenabled fieldname="" on="" />
</labelattributes>
<overlay display="false" type="diagram" >
<renderer item_interpretation="linear" >
<diagramitem size="0" value="0" />
<diagramitem size="0" value="0" />
</renderer>
<factory sizeUnits="MM" type="Pie" >
<wellknownname>Pie</wellknownname>
<classificationfield>0</classificationfield>
</factory>
<scalingAttribute>0</scalingAttribute>
</overlay>
</maplayer>
<maplayer minimumScale="0" maximumScale="1e+08" type="raster" hasScaleBasedVisibilityFlag="0" >
<id>M_37_061_mod5_YX20090921102231453</id>
<datasource>I:/SE2/QGIS_Pr/1/M-37-061-mod5_YX.tif</datasource>
<layername>M-37-061-mod5_YX</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<epsg>4326</epsg>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider></provider>
<rasterproperties>
<mDrawingStyle>MultiBandColor</mDrawingStyle>
<mColorShadingAlgorithm>UndefinedShader</mColorShadingAlgorithm>
<mInvertColor boolean="false" />
<mRedBandName>Band 1</mRedBandName>
<mGreenBandName>Band 2</mGreenBandName>
<mBlueBandName>Band 3</mBlueBandName>
<mGrayBandName>Not Set</mGrayBandName>
<mStandardDeviations>0</mStandardDeviations>
<mUserDefinedRGBMinimumMaximum boolean="false" />
<mRGBMinimumMaximumEstimated boolean="true" />
<mUserDefinedGrayMinimumMaximum boolean="false" />
<mGrayMinimumMaximumEstimated boolean="true" />
<mContrastEnhancementAlgorithm>StretchToMinimumMaximum</mContrastEnhancementAlgorithm>
<contrastEnhancementMinMaxValues>
<minMaxEntry>
<min>0</min>
<max>255</max>
</minMaxEntry>
<minMaxEntry>
<min>0</min>
<max>255</max>
</minMaxEntry>
<minMaxEntry>
<min>0</min>
<max>255</max>
</minMaxEntry>
</contrastEnhancementMinMaxValues>
<mNoDataValue mValidNoDataValue="false" >-9999.000000</mNoDataValue>
</rasterproperties>
</maplayer>
<maplayer minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" geometry="Line" type="vector" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0" >
<id>Rivers20090922195410218</id>
<datasource>I:/SE2/QGIS_Pr/1/Rivers</datasource>
<layername>Rivers</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<epsg>4326</epsg>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider encoding="System" >ogr</provider>
<edittypes>
<edittype type="0" name="Length" />
<edittype type="0" name="Name" />
<edittype type="0" name="River_Code" />
</edittypes>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<singlesymbol>
<symbol>
<lowervalue></lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>2</pointsize>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="63" blue="203" green="96" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.46</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</singlesymbol>
<labelattributes>
<label fieldname="" text="Label" />
<family fieldname="" name="MS Shell Dlg 2" />
<size fieldname="" units="pt" value="12" />
<bold fieldname="" on="0" />
<italic fieldname="" on="0" />
<underline fieldname="" on="0" />
<color fieldname="" red="0" blue="0" green="0" />
<x fieldname="" />
<y fieldname="" />
<offset x="0" y="0" units="pt" yfieldname="" xfieldname="" />
<angle fieldname="" value="0" auto="0" />
<alignment fieldname="" value="center" />
<buffercolor fieldname="" red="255" blue="255" green="255" />
<buffersize fieldname="" units="pt" value="1" />
<bufferenabled fieldname="" on="" />
<multilineenabled fieldname="" on="" />
</labelattributes>
<overlay display="false" type="diagram" >
<renderer item_interpretation="linear" >
<diagramitem size="0" value="0" />
<diagramitem size="0" value="0" />
</renderer>
<factory sizeUnits="MM" type="Pie" >
<wellknownname>Pie</wellknownname>
<classificationfield>0</classificationfield>
</factory>
<scalingAttribute>0</scalingAttribute>
</overlay>
</maplayer>
<maplayer minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" geometry="Line" type="vector" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0" >
<id>Roads220090922194615265</id>
<datasource>I:/SE2/QGIS_Pr/1/Roads2/Roads2.shp</datasource>
<layername>Roads2</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<epsg>4326</epsg>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider encoding="System" >ogr</provider>
<classificationattribute>Road_Code</classificationattribute>
<edittypes>
<edittype type="0" name="Length" />
<edittype type="0" name="Name" />
<edittype type="0" name="Road_Code" />
</edittypes>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<graduatedsymbol>
<mode>Quantile</mode>
<classificationfield>Road_Code</classificationfield>
<symbol>
<lowervalue>0</lowervalue>
<uppervalue>1</uppervalue>
<label>Міжнародні</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>2</pointsize>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="135" blue="37" green="81" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.76</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath null="1" ></texturepath>
</symbol>
<symbol>
<lowervalue>1.1</lowervalue>
<uppervalue>2</uppervalue>
<label>Регіональні</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>2</pointsize>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="155" blue="51" green="108" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.46</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath null="1" ></texturepath>
</symbol>
<symbol>
<lowervalue>2.1</lowervalue>
<uppervalue>3</uppervalue>
<label>Місцеві</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>2</pointsize>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="221" blue="60" green="146" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.26</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath null="1" ></texturepath>
</symbol>
</graduatedsymbol>
<labelattributes>
<label fieldname="" text="Label" />
<family fieldname="" name="MS Shell Dlg 2" />
<size fieldname="" units="pt" value="12" />
<bold fieldname="" on="0" />
<italic fieldname="" on="0" />
<underline fieldname="" on="0" />
<color fieldname="" red="0" blue="0" green="0" />
<x fieldname="" />
<y fieldname="" />
<offset x="0" y="0" units="pt" yfieldname="" xfieldname="" />
<angle fieldname="" value="0" auto="0" />
<alignment fieldname="" value="center" />
<buffercolor fieldname="" red="255" blue="255" green="255" />
<buffersize fieldname="" units="pt" value="1" />
<bufferenabled fieldname="" on="" />
<multilineenabled fieldname="" on="" />
</labelattributes>
<overlay display="false" type="diagram" >
<renderer item_interpretation="linear" >
<diagramitem size="0" value="0" />
<diagramitem size="0" value="0" />
</renderer>
<factory sizeUnits="MM" type="Pie" >
<wellknownname>Pie</wellknownname>
<classificationfield>0</classificationfield>
</factory>
<scalingAttribute>0</scalingAttribute>
</overlay>
</maplayer>
<maplayer minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" geometry="Polygon" type="vector" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0" >
<id>Settlements20090922201038328</id>
<datasource>I:/SE2/QGIS_Pr/1/Settlements</datasource>
<layername>Settlements</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs</proj4>
<srsid>3452</srsid>
<srid>4326</srid>
<epsg>4326</epsg>
<description>WGS 84</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider encoding="System" >ogr</provider>
<edittypes>
<edittype type="0" name="Name" />
<edittype type="0" name="Pop" />
<edittype type="3" name="Settlement" >
<valuepair key="Місто" value="1" />
<valuepair key="Селище" value="3" />
<valuepair key="Селище міського типу" value="2" />
<valuepair key="Хутір" value="4" />
</edittype>
</edittypes>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<singlesymbol>
<symbol>
<lowervalue></lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>2</pointsize>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.26</outlinewidth>
<fillcolor red="217" blue="124" green="211" />
<fillpattern>DiagCrossPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</singlesymbol>
<labelattributes>
<label fieldname="" text="Label" />
<family fieldname="" name="MS Shell Dlg 2" />
<size fieldname="" units="pt" value="12" />
<bold fieldname="" on="0" />
<italic fieldname="" on="0" />
<underline fieldname="" on="0" />
<color fieldname="" red="0" blue="0" green="0" />
<x fieldname="" />
<y fieldname="" />
<offset x="0" y="0" units="pt" yfieldname="" xfieldname="" />
<angle fieldname="" value="0" auto="0" />
<alignment fieldname="" value="center" />
<buffercolor fieldname="" red="255" blue="255" green="255" />
<buffersize fieldname="" units="pt" value="1" />
<bufferenabled fieldname="" on="" />
<multilineenabled fieldname="" on="" />
</labelattributes>
<overlay display="false" type="diagram" >
<renderer item_interpretation="linear" >
<diagramitem size="0" value="0" />
<diagramitem size="0" value="0" />
</renderer>
<factory sizeUnits="MM" type="Pie" >
<wellknownname>Pie</wellknownname>
<classificationfield>0</classificationfield>
</factory>
<scalingAttribute>0</scalingAttribute>
</overlay>
</maplayer>
</projectlayers>
<properties>
<SpatialRefSys>
<ProjectCRSProj4String type="QString" ></ProjectCRSProj4String>
<ProjectCrsId type="int" >0</ProjectCrsId>
</SpatialRefSys>
<Gui>
<SelectionColorBluePart type="int" >0</SelectionColorBluePart>
<CanvasColorGreenPart type="int" >255</CanvasColorGreenPart>
<CanvasColorRedPart type="int" >255</CanvasColorRedPart>
<SelectionColorRedPart type="int" >255</SelectionColorRedPart>
<SelectionColorGreenPart type="int" >255</SelectionColorGreenPart>
<CanvasColorBluePart type="int" >255</CanvasColorBluePart>
</Gui>
<PositionPrecision>
<DecimalPlaces type="int" >2</DecimalPlaces>
<Automatic type="bool" >true</Automatic>
</PositionPrecision>
</properties>
</qgis>
тоже не хочет открывать на новом месте просто так.
Что же делать?
Подправить файл проекта:
1)окрываем его в простейшем текстовом редакторе;
2) ищем тег <datasource>
3) удаляем ту часть пути, которой на новом месте нет;
4) сохраняем файл проекта.
Все благополучно само загружается.
Например, у меня попроще:
1) повторяются только такие части пути "I:/SE2/QGIS_Pr/1/";
2) потому "найти и заменить" > что: "I:/SE2/QGIS_Pr/1/", на что заменить:"" (на пустоту) > "заменить все".
3) сохранить проект.
Все нормально загружается.
Кто не верит, могу видео снять.

Re: Проблема переноса слоя из текста с разделителями
Добавлено: 09 апр 2010, 22:23
Максим Дубинин
В этой теме речь идет о другом.
Для того, чтобы пусти стали относительными, ничего редактировать вручную давно уже не обязательно.

Re: Проблема переноса слоя из текста с разделителями
Добавлено: 16 апр 2011, 15:07
Voltron
Сейчас при отсутствии слоя отображается дилог поиска отстутствующих слоёв.