Страница 1 из 1

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

Добавлено: 09 янв 2014, 07:50
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
Может у кого-нибудь есть идеи как правильно сделать выражение, я думала может округлить сначало, но у меня округление происходит только в большую сторону...

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

Добавлено: 09 янв 2014, 07:52
angelok
Пример как на карте выглядят подписи

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

Добавлено: 09 янв 2014, 08:05
gamm
а что у вас там 0 делает (помечен стрелкой)? это же не не round() а int(), или напишите round() вместо int(), что будет правильнее (похоже, это и подразумевалось)

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

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

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

Добавлено: 09 янв 2014, 08:13
Monstria
mid([NAME],1,1) & "<SUB>" & mid([NAME],3,1) & "</SUB>" - не проще?

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

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

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

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

Добавлено: 09 янв 2014, 08:36
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>"

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

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

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

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

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

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

Добавлено: 09 янв 2014, 08:51
angelok
Monstria писал(а):mid([NAME],1,1) & "<SUB>" & mid([NAME],3,1) & "</SUB>" - не проще?

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

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

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

Добавлено: 09 янв 2014, 09:01
angelok
Спасибо еще раз всем за ответы!!!!!!!!!!

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

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

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

Syntax
Mid(string, start[, length])