ThinkGeo.com    |     Documentation    |     Premium Support

WKT and regional settings

 


About WKT (Well know text)


It is my opinion the "new Feature(wkt)" operation does not take in account regional settings; 

Double values converted to text-strings look like different in English ("xxxx.yyy") and other languages, Italian looks like ("xxxx,yyy").


The statement


  new Feature("POINT(11.111 22.222)")


raises un error if current regional settings do not use "dot" as decimal separator, probably "POINT(11,111 22,222)" would be better but it is not WKT and - correctly - does not pass the conformance check; "POINT(11 22)" runs in both languages.



Hi Enrico,


You should set the CultureInfo to InvariantCulture when you convert a double to a string if the regional setting is not English. So the code could be like this:


double lon = 11.111;
double lat = 22.222;
string lonInString = lon.ToString(CultureInfo.InvariantCulture);
string latInString = lat.ToString(CultureInfo.InvariantCulture);
string wkt = string.Format("POINT({0} {1})", lonInString, latInString);
layer.InternalFeatures.Add(new Feature(wkt));


Please have a try to see what happens.
And any more questions please let me know.
Thanks,
Sun