I've recieved a lot of emails from many developers who want to get involved with programming version 3 of the GMap.Net Control. My advice is to download the latest SVN code, read Bill Pierce's original Codeproject articles (see links to right) and then look at the task lists and bug tracker on Sourceforge.net. Just make a patch with any code changes you make, and add it to the sourceforge.net patch tracker. You are all welcome to contribute, no effort is too small and every little bit of help is appreciated.
The major bug at the moment is when events are raised by the Google Map API, and pass arguments. These arguments are instances of classes which then need to be converted to a string by the javascript, this string is then passed to the .Net in the callback. The conversion to a string requires a custom 'toString' method, one for each Google Map API class. This 'toString' method needs to ensure all relevant data from the Javascript class is transferred onto the .Net. The .Net side of the control then needs to reconstruct the class given the string.
This would be fairly straightforward, except Google has obfuscated it's Javascript. For example the 'GMap2' class is, I believe, known as class 'j'. If you run the TestWebsite, and click on "GMap.Net for Google Map API version 2" you will see some debugging javascript alert boxes with callback debugging messages. (These debugging calls are coded in the GMap2X.js file). I have created some methods to print out the obfuscated classes onto the page.
I find it much easier to reverse engineer the obfuscated javascript by copy & pasting into a C# IDE environment and commenting it. I've created a C# solution and folder, called "Javascript Reverse Engineering", with my reverse engineering efforts so far. Doing this will allow the developer of the toString methods to accurately transfer the class data from Google Map obfuscated javascript to the .Net in the control.
Thursday, November 02, 2006
Subscribe to:
Post Comments (Atom)

1 comment:
Can you reliably use the obfuscated class and member names in your code?
Surely if the API is re-obfuscated, there is a high likelihood of the members being differently named?
Post a Comment