diff --git a/lib/modules/Geography.pmod/Position.pike b/lib/modules/Geography.pmod/Position.pike index ec360f278b7b7bed2424e3dabe3d13a7ad9157cb..9ce29d826667445aa7c20e38de0bf772af27333c 100644 --- a/lib/modules/Geography.pmod/Position.pike +++ b/lib/modules/Geography.pmod/Position.pike @@ -31,9 +31,11 @@ void create(int|float|string _lat,void|int|float|string _long) if (zero_type(_long)) { string tmp; - if (sscanf(_lat,"%sN %s",tmp,_long)==2) _long=tmp+"N"; - else if (sscanf(_lat,"%sS %s",tmp,_long)==2) _long=tmp+"N"; - else if (sscanf(_lat,"%s %s",tmp,_long)==2) _long=tmp; + if (sscanf(_lat,"%sN %s",tmp,_long)==2) _lat=tmp+"N"; + else if (sscanf(_lat,"%sS %s",tmp,_long)==2) _lat=tmp+"S"; + else if (sscanf(_lat,"%sW %s",tmp,_lat)==2) _long=tmp+"W"; + else if (sscanf(_lat,"%sE %s",tmp,_lat)==2) _long=tmp+"N"; + else if (sscanf(_lat,"%s %s",tmp,_long)==2) _lat=tmp; } _lat=dwim(_lat,"NS"); if (stringp(_lat)) @@ -165,6 +167,6 @@ int `>(object pos) string _sprintf(int t) { if (t=='O') - return "Position("+longitude()+", "+latitude()+")"; + return "Position("+latitude()+", "+longitude()+")"; return 0; }