изменение data source в lyr файле

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Аватара пользователя
mant
Участник
Сообщения: 50
Зарегистрирован: 23 ноя 2005, 16:21
Репутация: 0
Откуда: Одесса, Украина
Контактная информация:

изменение data source в lyr файле

Сообщение mant »

Приветствую,

может кто подсказать, как изменить data source в lyr файле средствами питона в скрипте для аркгис?

общая задача: средствами питона создать для растра lyr файл и перенести туда символику из существуюего lyr файла.
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: изменение data source в lyr файле

Сообщение Дмитрий Барышников »

Код: Выделить всё

  Dim pGxCat As IGxCatalog, pGxLayer As IGxLayer  
  Dim pGxObj As IGxObject, pEnumGxObj As IEnumGxObject  
  Dim num As Long  Dim pValue As Variant  
  Set pGxCat = New GxCatalog  
  Set pValue = pGxCat.GetObjectFromFullName("d:\mydata\states.lyr", num)  
  If TypeOf pValue Is IEnumGxObject 
  Then    
  Set pEnumGxObj = pValue    
  Set pGxObj = pEnumGxObj.Next  
  Else    
  Set pGxObj = pValue  
  End If  
  Set pGxLayer = pGxObj  
  Dim pGFLayer As IGeoFeatureLayer  
  Set pGFLayer = pGxLayer.Layer
нашел код в документации. Ключевые моменты:
- интерфейс IGxLayer
- открытие lyr - Set pValue = pGxCat.GetObjectFromFullName("d:\mydata\states.lyr", num)
- извлечение слоя - Dim pGFLayer As IGeoFeatureLayer Set pGFLayer = pGxLayer.Layer
Остается переопределить источник для IGeoFeatureLayer через интерфейс IName (метод put_Path)и сохранить через интерфейс IPersistStream (метод Save)
Аватара пользователя
mant
Участник
Сообщения: 50
Зарегистрирован: 23 ноя 2005, 16:21
Репутация: 0
Откуда: Одесса, Украина
Контактная информация:

Re: изменение data source в lyr файле

Сообщение mant »

насколько я понимаю, это VB. Есть ли аналог для Питона?
Или есть ли какой способ использовать VB код в скрипте на Питоне?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: изменение data source в lyr файле

Сообщение Дмитрий Барышников »

mant писал(а): Или есть ли какой способ использовать VB код в скрипте на Питоне?
Готового решения нет - остается вам основываясь на примере этого кода (с учетом интерфейсов, которые я перечислил) реализовать то что вам нужно на Питоне.
Аватара пользователя
mant
Участник
Сообщения: 50
Зарегистрирован: 23 ноя 2005, 16:21
Репутация: 0
Откуда: Одесса, Украина
Контактная информация:

Re: изменение data source в lyr файле

Сообщение mant »

Благодарю,
посмотрю, что смогу сделать и найти.
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя