Подписи глубин на карте

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
angelok
Активный участник
Сообщения: 184
Зарегистрирован: 05 июн 2013, 11:45
Репутация: 0

Подписи глубин на карте

Сообщение angelok » 09 янв 2014, 07:50

Всех С Новым Годом!
Желаю счастья и достижения поставленных целей!
А теперь к вопросу: У меня есть точечный файл (грид). У каждой точки значение глубины, например 3,26 3,42. На карте эти глубины должны подписываться так 3 3 Я создала выражение для надписи:
2 4

int([ELEVATION_IN_METRES]) &"<SUB>"&" "& int((( [ELEVATION_IN_METRES] -int( [ELEVATION_IN_METRES] ))*10),0)&"</SUB>" . Но почему то если в таблице значение 3,4 он подписывает 3 ????
3
Может у кого-нибудь есть идеи как правильно сделать выражение, я думала может округлить сначало, но у меня округление происходит только в большую сторону...

angelok
Активный участник
Сообщения: 184
Зарегистрирован: 05 июн 2013, 11:45
Репутация: 0

Re: Подписи глубин на карте

Сообщение angelok » 09 янв 2014, 07:52

Пример как на карте выглядят подписи
Вложения
Depth.png
Пример подписей на карте
Depth.png (10.08 КБ) 7983 просмотра

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Подписи глубин на карте

Сообщение gamm » 09 янв 2014, 08:05

а что у вас там 0 делает (помечен стрелкой)? это же не не round() а int(), или напишите round() вместо int(), что будет правильнее (похоже, это и подразумевалось)

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

 int(
       (
          ( 
               [ELEVATION_IN_METRES] -int(
                                                            [ELEVATION_IN_METRES] 
                                                           )
           )*10
         ),0 <-----------
     )

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Подписи глубин на карте

Сообщение Monstria » 09 янв 2014, 08:13

mid([NAME],1,1) & "<SUB>" & mid([NAME],3,1) & "</SUB>" - не проще?

В вашем случае вместо NAME -> ELEVATION_IN_METRES

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Подписи глубин на карте

Сообщение gamm » 09 янв 2014, 08:30

Monstria писал(а):mid([NAME],1,1) & "<SUB>" & mid([NAME],3,1) & "</SUB>" - не проще?
не, тогда round([NAME],1) нужен, а так будет отсечение остатка дробной части. Кстати, float -> string автоматически преобразуется (не знаком с использованным скриптовым языком)?

angelok
Активный участник
Сообщения: 184
Зарегистрирован: 05 июн 2013, 11:45
Репутация: 0

Re: Подписи глубин на карте

Сообщение angelok » 09 янв 2014, 08:36

Monstria писал(а):mid([NAME],1,1) & "<SUB>" & mid([NAME],3,1) & "</SUB>" - не проще?

В вашем случае вместо NAME -> ELEVATION_IN_METRES
Сори, не правильно скопировала код
int([ELEVATION_IN_METRES]) &"<SUB>"&" "& int(( [ELEVATION_IN_METRES] -int( [ELEVATION_IN_METRES] ))*10)&"</SUB>"

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Подписи глубин на карте

Сообщение Monstria » 09 янв 2014, 08:44

gamm писал(а):Кстати, float -> string автоматически преобразуется (не знаком с использованным скриптовым языком)?
Да автоматом...
gamm писал(а):не, тогда round([NAME],1) нужен, а так будет отсечение остатка дробной части
Как я понял задача была разделить целую и дробную часть и показать разным шрифтом - согласен с тем что не совсем корректно предложил вариант - не учитывая что целая и дробная часть может быть с десятками :)

Такой вариант более корректен - int([NAME]) & "<SUB>" & MID([NAME],instr([NAME],",")+1) & "</SUB>"

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Подписи глубин на карте

Сообщение Monstria » 09 янв 2014, 08:46

angelok писал(а): int(( [ELEVATION_IN_METRES] -int( [ELEVATION_IN_METRES] ))*10)
Вы из целого числа вычитаете это же число и умножаете на десять - в результате всегда ноль - я ошибаюсь?

angelok
Активный участник
Сообщения: 184
Зарегистрирован: 05 июн 2013, 11:45
Репутация: 0

Re: Подписи глубин на карте

Сообщение angelok » 09 янв 2014, 08:51

Monstria писал(а):mid([NAME],1,1) & "<SUB>" & mid([NAME],3,1) & "</SUB>" - не проще?

В вашем случае вместо NAME -> ELEVATION_IN_METRES

Всё получилось!!! Спасибо, большое!!!
Не подскажите где Вы нашли этот оператор "mid" и как он работает :oops: . Что означают цифры в скобках
mid([NAME],1,1)

angelok
Активный участник
Сообщения: 184
Зарегистрирован: 05 июн 2013, 11:45
Репутация: 0

Re: Подписи глубин на карте

Сообщение angelok » 09 янв 2014, 09:01

Спасибо еще раз всем за ответы!!!!!!!!!!

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Подписи глубин на карте

Сообщение ericsson » 09 янв 2014, 09:17

angelok писал(а):Не подскажите где Вы нашли этот оператор "mid" и как он работает :oops: . Что означают цифры в скобках
mid([NAME],1,1)
Вот я первый раз в жизни вижу скрипт для ArcGIS, но почему-то сразу нашел http://webhelp.esri.com/arcgisdesktop/9 ... lculations

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

Syntax
Mid(string, start[, length]) 

Ответить

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

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

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