this article from the popular link [1].

basically, google maps on BlackBerry can be start with URL like this:

http://gmm/x?action=LOCN&a=@latlon:35.0000,-105,0000&title=something&description=something

this is the code snapshot:

int mh = CodeModuleManager.getModuleHandle("GoogleMaps");
if (mh == 0) {
     throw new ApplicationManagerException("GoogleMaps isn't installed");
}
URLEncodedPostData uepd = new URLEncodedPostData(null, false);
uepd.append("action","LOCN");
uepd.append("a", "@latlon:"+l.getLatitude()+","+l.getLongitude());
uepd.append("title", l.getName());
uepd.append("description", l.getDescription());
String[] args = { "http://gmm/x?"+uepd.toString() };
ApplicationDescriptor ad = CodeModuleManager.getApplicationDescriptors(mh)[0];
ApplicationDescriptor ad2 = new ApplicationDescriptor(ad, args);
ApplicationManager.getApplicationManager().runApplication(ad2, true);

here is more complete code from [2]:

import net.rim.blackberry.api.browser.URLEncodedPostData;
import net.rim.device.api.system.ApplicationDescriptor;
import net.rim.device.api.system.ApplicationManager;
import net.rim.device.api.system.ApplicationManagerException;
import net.rim.device.api.system.CodeModuleManager;
import net.rim.device.api.ui.component.Dialog;
public class Application extends net.rim.device.api.ui.UiApplication {
        public static void main(String[] args) {
                int mh = CodeModuleManager.getModuleHandle("GoogleMaps");
                if (mh == 0) {
                        Dialog.alert("GoogleMaps isn't installed");
            System.exit( 1 );
                }
//              URLEncodedPostData uepd = new URLEncodedPostData(null, false);
//              uepd.append("action","LOCN");
//              uepd.append("a", "@latlon:"+"35.0000"+","+"105,0000");
//              uepd.append("title", "something");
//              uepd.append("description", "something");
                String[] args1 = { "http://gmm/x?action=LOCN&a=@latlon:
40.03731412913736,116.34973964097298&title=something&description=something"        };
                ApplicationDescriptor ad =
CodeModuleManager.getApplicationDescriptors(mh)[0];
                ApplicationDescriptor ad2 = new ApplicationDescriptor(ad, args1);
                try {
                        ApplicationManager.getApplicationManager().runApplication(ad2,
true);
                } catch (ApplicationManagerException e) {
                        // TODO Auto-generated catch block
                        Dialog.alert("Debug ..."+e.getMessage());
            System.exit( 1 );
                        //e.printStackTrace();
                }
        }
        Application() {
        }
}

some one report using address instead of coordinates [3]:

I've been able to avoid the error in 3.0.2 by removing the "@latlon:" tag, as in:


uepd.append("a", l.getLatitude()+","+l.getLongitude());

The other option is to put in the actual address, as in:

uepd.append("a", "1600 Pennsylvania Avenue, Washington DC");

[1] http://www.blackberryforums.com/developer-forum/143263-heres-how-start-google-maps-landmark.html
[2] http://groups.google.com/group/google-maps-api-china/browse_thread/thread/49f72c8082f3caa0
[3] http://supportforums.blackberry.com/rim/board/message?board.id=java_dev&message.id=20392