Как сравнить "население =*" в 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
Вопрос
Есть ли правильный способ сравнить население, не бросая его и не получая проблем? Правильно ли это делать?