2012-04-02 5 views
3

J'ai besoin d'utiliser des cartes Bing dans une application en cours de développement ciblant blackberry OS 6.0. Mais n'a pas pu trouver de framework ou SDK nativement disponible. S'il vous plaît aidez-moi sur l'utilisation de Bing ou Google Maps SDK sur BlackBerry. S'il vous plaît fournir les références d'où je peux obtenir le SDK. Je vous remercie.Bing Maps SDK pour Blackberry 6.0

Répondre

3

Voici un exemple d'utilisation de Google Maps, je ne sais pas comment utiliser les cartes Bing.

D'abord, installez Google Maps sur votre appareil/simulateur à partir de http://m.google.com/maps/ en cliquant sur ce lien sur le navigateur de l'appareil/simulateur.
Ensuite, vous pouvez appeler l'application Google Maps depuis votre application. Voici un exemple de 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()); 
     } 
    } 
} 

Voici comment il devrait ressembler à:

Home Screen Google Maps

Je l'ai testé uniquement sur simulateur 9800 (OS 6)

I GOT THE IDEA FROM HERE

+0

@HeartBeat .. Je ne pense pas que l'utilisation de ceci est une bonne option, car cela appelle une autre application et dépendante. Si la carte est supprimée, votre application ne fonctionnera pas. - –