Thank you, you are awesome with these fixes.
-----
I'm not sure what you mean tho with with «The World Coordinate Converter». For most people who work with projected data it is no problem to change their data to have it in geographical coordinates. I already did it with my data so i can play. I'm more interested to how it looks projected (because a projected something looks different than in geographical)
http://www.colorado.edu/geography/gcraf … reepro.gif
The issue is that everything is thought in the application to work with degrees. Markers must have lat, lon like 24.34, 44.23. You assume that if something is on the left side and it shouldn't be, you can add 360 and make it ok if (brx < tlx) brx += 360; (which in geographical coordinates is true, but in projected coordinates not).
The point of a projected coordinate system is that you don't think about being on the globe any more. You are on a plane and when you reach the end... you stop. In the case of 3844 with limits 117436.2591, 246700.1411, 1024483.3711, 771305.0242 ... when you reach 771305 you don't go to 117436. That's the edge of the map. There be dragons.
If you ever go to do it, check out openlayers (version 2) to see how little you have to care about projections. Don't care more. If somebody wants you to reproject, integrate proj4net and let them be.
It's not all bad, some calculations become way easier in projected coordinates.
i.e.: the DistanceBetweenPoints function in OnlineMapsUtils wouldn't need the circumference of the earth at all to do that calculation. It would be a simple Math.Sqrt(Math.Pow(x1-x2,2)+Math.Pow(y1-y2,2)). because everything is in meters.
If somebody asks you to project their data to sperical mercator don't, because it won't do them any good. They can just reproject that data. they can use QGis or whatever. I think they want to see in that projection, which would be the more useful feature.
The point about projections is that they offer greater precision. Because they almost all in meters, there's no need for fancy math. Just scale the coordinates of the markers/buildings according to zoom level.
-----
If you should implement something as a first phase is
- a projectionType - enum property for the OnlineMaps object by default to Geographical, but with possible value Projected. But what would need to happen then is that all the checks you do for a globe, would go away.
- a bounds property - the edges of the map - and the map should stop at those coordinates and not allow moving forward
- a wraparound property - if it's true then you can go around the world just fine, if not, you stop at the edge of the map
- a projectionName property - just because there should be one.
if i were to do it i would do it in this order
1. the bounds and wraparound would be useful even with geographical (if someone wants to limit how far the map can go)
2. projectionType - this is the actual hard one, finding all the tiny bits and checking if this is set to something else
3. projectionName - because that's when this would actually become useful.
------
Anyway, so far for me it's not urgent to get to that, I'm still working to perfect the features i want to implement. Projections can wait for me, and I have no expectation of you to do that. Your product is wonderful as is. If you ever start doing them please post something on the forum. I'll do the same if I start before that.