Как получить координаты видимого экстента и записать их в текстовый файл?
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 09 апр 2018, 18:22
- Репутация: 0
- Откуда: Новосибирск
Как получить координаты видимого экстента и записать их в текстовый файл?
Здравствуйте!
Я понимаю, что можно просто приблизиться к каждому углу рамки и нажать кнопку Identify, но каждый раз это делать очень долго, а работать нужно быстро.
Прошу помощи в написании такого скрипта, который будет "скалывать" координаты с видимого экстента и записывать их в файл.
Я только начинаю осваивать питон, поэтому помогите разобраться, дать какие-нибудь подсказки.
Я понимаю, что можно просто приблизиться к каждому углу рамки и нажать кнопку Identify, но каждый раз это делать очень долго, а работать нужно быстро.
Прошу помощи в написании такого скрипта, который будет "скалывать" координаты с видимого экстента и записывать их в файл.
Я только начинаю осваивать питон, поэтому помогите разобраться, дать какие-нибудь подсказки.
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: Как получить координаты видимого экстента и записать их в текстовый файл?
На питоне не люблю программировать - а так задача простая...
Пользователь не сказал когда хочет снимать данные (разумеется можно сделать кнопу для выполнения действия), поэтому я сделал запись всех текущих изменений.
Файл лога всегда пишется (дописывается) в файлик mapLocationData.txt на рабочем столе, данные пишутся в системе координат рабочего фрейма..
Посмотреть как работает можно тут - https://youtu.be/EVpnmNWq8co
Взять плагин -
Пользователь не сказал когда хочет снимать данные (разумеется можно сделать кнопу для выполнения действия), поэтому я сделал запись всех текущих изменений.
Файл лога всегда пишется (дописывается) в файлик mapLocationData.txt на рабочем столе, данные пишутся в системе координат рабочего фрейма..
Посмотреть как работает можно тут - https://youtu.be/EVpnmNWq8co
Взять плагин -
-
- Активный участник
- Сообщения: 163
- Зарегистрирован: 28 июн 2012, 01:02
- Репутация: 84
- Откуда: Vladivostok
Re: Как получить координаты видимого экстента и записать их в текстовый файл?
Позвольте предложить простое решение на python.
Открыть окно Python. Вставить код:Предварительно заменить путь до файла, в который нужно сохранить координаты. Если нужно координаты добавить в существующий файл, то параметр 'w' заменить на 'a'.
Открыть окно Python. Вставить код:
Код: Выделить всё
with open(u'D:\\TEMP\\_11.txt', 'w') as f:
f.write(str(arcpy.mapping.MapDocument('current').activeDataFrame.extent))
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 09 апр 2018, 18:22
- Репутация: 0
- Откуда: Новосибирск
Re: Как получить координаты видимого экстента и записать их в текстовый файл?
Спасибо за отзывы!
Я так понял, что записываются всегда две координаты экстента? (у меня так записывает и плагин, и конструкция python - координаты нижнего левого и верхнего правого угла)
тогда следующий вопрос - как дописать остальные две координаты верхнего правого и нижнего левого угла?
Я так понял, что записываются всегда две координаты экстента? (у меня так записывает и плагин, и конструкция python - координаты нижнего левого и верхнего правого угла)
тогда следующий вопрос - как дописать остальные две координаты верхнего правого и нижнего левого угла?
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Как получить координаты видимого экстента и записать их в текстовый файл?
Взять Х из одной, У из другой, а потом наоборот.
-
- Завсегдатай
- Сообщения: 388
- Зарегистрирован: 09 ноя 2012, 09:25
- Репутация: 113
- Откуда: Москва
Re: Как получить координаты видимого экстента и записать их в текстовый файл?
Можно как-то так, например:
Код: Выделить всё
with open(u'D:\\TEMP\\_11.txt', 'w') as f:
ext = arcpy.mapping.MapDocument('current').activeDataFrame.extent
listcoordext = [(ext.XMin,ext.YMin),(ext.XMin,ext.YMax),(ext.XMax,ext.YMax),(ext.XMax,ext.YMin)]
f.write(str(listcoordext))
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 09 апр 2018, 18:22
- Репутация: 0
- Откуда: Новосибирск
Re: Как получить координаты видимого экстента и записать их в текстовый файл?
всем огромное спасибо!
если кому интересно, вот как то так получилось:
если кому интересно, вот как то так получилось:
Код: Выделить всё
import arcpy
import pythonaddins
mxd = arcpy.mapping.MapDocument("CURRENT")
ext = mxd.activeDataFrame.extent
df = arcpy.mapping.ListDataFrames(mxd)[0]
df_sr = df.spatialReference
any_gcs = df_sr.GCS
cur_pnt1 = arcpy.PointGeometry(arcpy.Point(ext.XMin, ext.YMin), df_sr)
cur_pnt2 = arcpy.PointGeometry(arcpy.Point(ext.XMax, ext.YMax), df_sr)
deg_pnt1 = cur_pnt1.projectAs(any_gcs).centroid
deg_pnt2 = cur_pnt2.projectAs(any_gcs).centroid
deg_x1 = deg_pnt1.X
deg_y1 = deg_pnt1.Y
deg_x2 = deg_pnt2.X
deg_y2 = deg_pnt2.Y
with open(u'D:\\txtFiles\\coord.txt', 'w') as f:
f.write(str('Extent= ') + str(deg_x1) + ' ' + str(deg_y2) + ' ' + str(deg_x2) + ' ' + str(deg_y1))
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей