Last modified: 2013-09-18 15:37:18 UTC
The implementation of GeoCoordinateValue (Change Ia084e73a: Implemented GeoCoordinateValue) seems to make an assumption about a perfect sphere, ie. the implementation is really just polar coordinates with adjusted names for the coordinates. The implementation should refer to a valid datum, and only assume a perfect sphere if the datum is missing. Also note that use of altitude normally refer to a standard surface, and without a valid datum this can't be deducted. Use of elevation is more appropriate in this cases. In my opinion the naming of the class is misleading as it is now. See also Geographic coordinate system (http://en.wikipedia.org/wiki/Geographic_coordinate_system) In addition there should be methods for transformation between different datums and coordinate systems, but this can be done in Lua if the necessary data is available.
It indeed does not currently hold all information it could hold. In particular the projection is not there yet. However adding additional stuff seems like extremely low priority for now, esp since we won't be using this DV for quite a while yet :) > there should be methods for transformation See GeoCoordinateParser and GeoCoordinateFormatter
The projection isn't that important, and it is also implied from what you are parsing, but the datum is important. Without the datum it is like measuring temperature without referencing to Celsius, Fahrenheit or Kelvin, or weight without giving kg. Is the north true north or magnetic north? And at which year? And is it used an simplistic sphere or an ellipsoid? And which parameters for the ellipsoid? Its good enough for experiments, but in real use this is to simplistic.
Almost all geo coordinates in Wikipedia consist out of latitude and longitude. That's all. I also maintain the Maps extension which is deployed on several hundreds of wikis, and it just supports these 2 parameters. No one is complaining. So how do you figure it's to simplistic for real world usage? What has a datum to do with geographical coordinates? If you have a property of geo coordinate type and you want to add a temporal coordinate as well, then you can use a qualifier. Adding any time value in the GeoCoord DV seems utterly wrong to me.
Most people have standardized on WGS84, and coordinates in Wikipedia don't require high level of precision anyway. But this will become a problem when Wikidata starts import coordinates from multiple external sources which might use different datums. Also read http://en.wikipedia.org/wiki/Datum_%28geodesy%29 :)
It is really a much bigger problem than most people tend to believe as WGS84 is outdated, the followup EGM96 isn't much used and EGM2008 is to complex to be really useful. Add to this that the GPS system uses its own variant, then add the errors and variations in NAD83 and ETRS89, and also note the use of PZ-90 in GLONASS and SK-42 reference system in older russian maps. Geographic coordinates are a complex beast. I would prefer that GeoCoordinateValue has WGS84 as default but it should be simple to override this and set it to something else. Note that this only has to be an identifier for the specific datum, not the complete definition of the actual datum.
An additional note; projections are not datums but they tend to have implications on the parsing. For example is the Universal Transverse Mercator coordinate system a bit pesky to parse as the edges tend to create discontinuities during processing.