Bing Maps SDK for Blackberry 6.0

I need to use Bing Maps in a development application for Blackberry OS 6.0. But couldn't find any natively available frameworks or SDKs. Please help me to use Bing or Google Maps SDK on Blackberry. Please provide links where I can get the SDK from. Thank.

+3


source to share


2 answers


Here is an example using Google Maps , not sure how to use Bing Maps.

First install Google Maps on your device / simulator from http://m.google.com/maps/ by clicking this link in your device / simulator browser.
Then you can call the Google Maps app from your app. Here's some sample code:

package mypackage;

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.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.BasicEditField;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

/**
 * A class extending the MainScreen class, which provides default standard
 * behavior for BlackBerry GUI applications.
 */
public final class MyScreen extends MainScreen
{
    /**
     * Creates a new MyScreen object
     */
    public MyScreen()
    {        
        // Set the displayed title of the screen       
        setTitle("Google Maps");

        VerticalFieldManager mainManager = new VerticalFieldManager(USE_ALL_HEIGHT | USE_ALL_WIDTH);

        final BasicEditField latitudeInputField = new BasicEditField("Latitude:" , "23.717782");
        final BasicEditField longitudeInputField = new BasicEditField("Longitude:" , "90.407124");
        final BasicEditField titleInputField = new BasicEditField("Title:" , "Dhaka, Bangladesh");
        final BasicEditField descriptionInputField = new BasicEditField("Description:" , "Capital City of Bangladesh");

        ButtonField btn_ShowMap = new ButtonField("Show On Map");
        btn_ShowMap.setChangeListener(new FieldChangeListener() {

            public void fieldChanged(Field field, int context) {
                double lat = Double.parseDouble( latitudeInputField.getText() );
                double lon = Double.parseDouble( longitudeInputField.getText() );
                String title = titleInputField.getText();
                String description = descriptionInputField.getText();
                showGoogleMap(lat, lon, title, description);
            }
        });

        mainManager.add(latitudeInputField);
        mainManager.add(longitudeInputField);
        mainManager.add(titleInputField);
        mainManager.add(descriptionInputField);
        mainManager.add(btn_ShowMap);

        add(mainManager);

    }

    /**
     * Starts the Google Maps application and the specified locatin is shown on map
     * @param latitude the latitude of the location to show
     * @param longitude the longitude of the location to show
     * @param title the title of the location to show
     * @param description the description of the location to show
     */
    public void showGoogleMap(double latitude, double longitude, String title,  String description) {
        try {
            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:"+latitude+","+longitude);
            uepd.append("title", title);
            uepd.append("description", description);
            String[] args = { "http://gmm/x?"+uepd.toString() };
            ApplicationDescriptor ad = CodeModuleManager.getApplicationDescriptors(mh)[0];
            ApplicationDescriptor ad2 = new ApplicationDescriptor(ad, args);
            ApplicationManager.getApplicationManager().runApplication(ad2, true);
        } catch(final Exception excp) {
            Dialog.alert("Sorry, can't start Google Map: " + excp.getMessage());
        }
    }
}

      

This is how it should look:



Home ScreenGoogle maps

I only tested on simulator 9800 (OS 6)

I GOT THE IDEA FROM HERE

+3


source


Check the Nutiteq RIM BlackBerry Mapping SDK .



You can get map content from Bing Maps, Yahoo! Maps, OpenStreetMap and many more. Go through the Nutiteq BlackBerry display SDK tutorial to get started with coding.

+3


source







All Articles