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

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

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

Сообщение angelok »

Всех С Новым Годом!
Желаю счастья и достижения поставленных целей!
А теперь к вопросу: У меня есть точечный файл (грид). У каждой точки значение глубины, например 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 »

Пример как на карте выглядят подписи
Вложения
Пример подписей на карте
Пример подписей на карте
Depth.png (10.08 КБ) 8017 просмотров
gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

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

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

 int(
       (
          ( 
               [ELEVATION_IN_METRES] -int(
                                                            [ELEVATION_IN_METRES] 
                                                           )
           )*10
         ),0 <-----------
     )
Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

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

Сообщение Monstria »

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

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

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

Сообщение gamm »

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 »

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 »

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 »

angelok писал(а): int(( [ELEVATION_IN_METRES] -int( [ELEVATION_IN_METRES] ))*10)
Вы из целого числа вычитаете это же число и умножаете на десять - в результате всегда ноль - я ошибаюсь?
angelok
Активный участник
Сообщения: 184
Зарегистрирован: 05 июн 2013, 11:45
Репутация: 0

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

Сообщение angelok »

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 »

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

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

Сообщение ericsson »

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

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

Syntax
Mid(string, start[, length]) 
Ответить

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

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

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