Как сравнить "население =*" в Tilemill CartoCSS?

Эта проблема

Сравнение населения с CartoCSS в моем TileMill проект не работает, если я специально не приведу население к числовому типу в моем Postgres запрос. Проблема в том, что он не стабилен. Я могу сделать это без проблем для Нидерландов, но там, по-видимому, есть тег населения как 27 813 в Германии. Это ведет к Postgis Plugin: ERROR: invalid input syntax for type double precision: "27 813",

Это привело меня к убеждению, что популяция является строковым / текстовым типом в Postgres база данных. Глядя на дефолт osm2pgsql Файл стиля, который я использовал во время импорта, подтверждает мое подозрение, что он возвращается в виде строки.

Запрос Postgresql

( SELECT way, place AS type, name, z_order, population
  FROM planet_osm_point
  WHERE place in ('country', 'state', 'city', 'town', 'village', 'hamlet', 'suburb', 'neighbourhood', 'locality', 'isolated_dwelling','city_block','borough','islet','island')
  ORDER BY population DESC NULLS LAST
) AS data

Фрагмент из CartoCSS

Фрагмент CartoCSS

Вопрос

Есть ли правильный способ сравнить население, не бросая его и не получая проблем? Правильно ли это делать?

0 ответов

Другие вопросы по тегам