Округление атрибутивной информации при выводе через popup

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Andrew86
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 май 2014, 11:03
Репутация: 0

Округление атрибутивной информации при выводе через popup

Сообщение Andrew86 » 02 июн 2015, 12:36

Добрый день!
Мой вопрос даже больше касается программирования на JavaScript.

Подскажите, пожалуйста, есть ли решение такой проблемы:
Запуск выполнения сценария внутри всплывающего окна?

В чем суть:
Использую Geoserver. При помощи GetFeatureInfo я получаю по WMS атрибутивную информацию по точкам в виде окон Popup. Требуется выполнить округление получаемой числовой информации. Выполняю настройку файла content.ftl и вписываю туда яваскрипт.

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

<#--
Body section of the GetFeatureInfo template for FIREPOINTS_MINI, it's provided with one feature collection, and
will be called multiple times if there are various feature collections
-->
<ul>
<#list features as feature>
  <b>Точка №${feature.fsnap_id.value}</b>:
  <hr> 
  <ul>
      <li>Долгота,°: 
			<script type='text/javascript'>
			x=Math.round (${feature.lon.value});
			document.write( x );
			</script>
	  </li>
	  <li>Широта,°: 
			<script type='text/javascript'>
			x=Math.round(${feature.lat.value});
			document.write( x );
			</script>	  
	  </li>
  </ul>
</#list>
</ul>
Ответ от Геосервера мне приходит следующий:

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

<html>
  <head>
    <title>Geoserver GetFeatureInfo output</title>
  </head>
  <style type="text/css">
	table.featureInfo, table.featureInfo td, table.featureInfo th {
		border:1px solid #ddd;
		border-collapse:collapse;
		margin:0;
		padding:0;
		font-size: 90%;
		padding:.2em .1em;
	}
	table.featureInfo th {
	    padding:.2em .2em;
		font-weight:bold;
		background:#eee;
	}
	table.featureInfo td{
		background:#fff;
	}
	table.featureInfo tr.odd td{
		background:#eee;
	}
	table.featureInfo caption{
		text-align:left;
		font-size:100%;
		font-weight:bold;
		padding:.2em .2em;
	}
  </style>
  <body>
  
<ul>
  <b>Точка №55266</b>:
  <hr> 
  <ul>
      <li>Долгота,°: 
			<script type='text/javascript'>
			x=Math.round (129.587);
			document.write( x );
			</script>
	  </li>
	  <li>Широта,°: 
			<script type='text/javascript'>
			x=Math.round(52.509);
			document.write( x );
			</script>	  
	  </li>
  </ul>
</ul>

  </body>
</html>
Округление долготы и широты не выполняется и не выводится. Хотя если открыть URL запроса в новой вкладке, то все работает и отображается. Скажите, пожалуйста, как правильно запускать эти скрипты?


Andrew86
Новоприбывший
Сообщения: 6
Зарегистрирован: 29 май 2014, 11:03
Репутация: 0

Re: Округление атрибутивной информации при выводе через popu

Сообщение Andrew86 » 22 июн 2015, 10:39

Спасибо за ответ.
Но проблема, к сожалению, сохранилась. Во всплывающем попапе округленные данные не выводятся.
Я так понимаю, что скриптовый текст в попапах вообще не выполняется, и все, что стоит между тегами <script> </script> игнорируется.
Однако, если эту же ссылку-запрос открывать отдельно в новом окне, то там все срабатывает и округленные данные выводятся.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Округление атрибутивной информации при выводе через popu

Сообщение Denis Rykov » 22 июн 2015, 11:46

Если я правильно понял, то вы используете FreeMarker, так в нем же есть возможность настроить формат отображения значений.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «Веб-картография»

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

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