[postgis-users] trouble shp2pgsql with numeric

Ben Madin lists at remoteinformation.com.au
Tue Nov 22 05:03:37 PST 2011


Tonton,

This is a limitation of shapefiles .dbf format. (yet another reason to move away from shapefiles). PostGIS can't assume that your value is a categorical value (ie a label) when the column only contains numbers and is tagged as numeric. To allow for the widest range of cases, it is imported probably as float or numeric, so if all your column values are integer you could easily (post-import) issue :

ALTER TABLE ltb ALTER COLUMN annoying_column TYPE int USING cast(annoying_column as int);

hth.

cheers

Ben

On 22/11/2011, at 5:20 PM, Tonton wrote:

> hello 
> 
> i use shp2pgsql in a web mapping application to add shp file into postgis. 
> 
> after uploading on the server side (in django framwork) i use this cmd
> 
>  cmd = "/usr/bin/shp2pgsql -c -s 4326 -W latin1 -g geometry "+/pathToSHPname+" " +str(tablename)+">"+/pathToMyFile.sql"
> 
> it is working near great now but for some numeric information  in the sql request  numbers are transform to sort of float : 2 became 2.0000000000
> 
> this is an exemple for my generate sql ! 
> 
> INSERT INTO "ltb" ("coef_conge","depart_lig","fc","freq_moy","freq__0","freq_moy_m","id_aire","id_station","libbelle","libelle","libell_","ligne","mode","num_type","nom_ligne","nom_statio","num_ligne","num_ligne_","sens","tps_parc","terminus_l","tps_parcou","type_acces","v_com_sytr","vitesse","id_lgn","nom_lgn","nom_stt","order","tpsatt_lgn","vit_off_km","vitcom_lgn","vitesse_km","length",geometry) VALUES ('0.0000000000',NULL,'104','0.0000000000','0','0.0000000000','0','0',NULL,NULL,NULL,NULL,NULL,'0',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0',NULL,'0.0000000000','0','18226',NULL,NULL,'31','0','0.0000000000','0.0000000000','0.0000000000','222.2906997126','0105000020E6100000010000000102000020E610000009000000E721D9B6305F1340E073BE5D7BF34640319802F44B5F13402462B73D81F34640B40C3CD08B5F1340C2FD98C68BF34640C8A0171BA45F134083D387CD8EF34640DBF078F7D05F13408FF4362192F346404248D110246013400742949695F34640BEA067CCB56013403119CEC098F346407A9371A6FD601340F5DF664A9BF34640EA04C7B160611340602BBB52A1F34640');
> 
> it is disapointing for me because sometimes the use of these data is for label or legend and it is not great to see 2.00000000000 instead of 2 on map or in legend part
> 
> does someone have same trouble or idea to resolv the trouble  ? 
> 
> regards 
> 
> T. 
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list