2012-04-02 94 views
3

我需要在正在開發針對黑莓OS 6.0的應用程序中使用Bing地圖。但找不到任何本地可用的框架或SDK。請幫助我在BlackBerry上使用Bing或Google Maps SDK。請提供我可以從哪裏獲得SDK的參考資料。謝謝。Bing Maps SDK For Blackberry 6.0

回答

3

這是一個使用Google地圖的例子,不知道如何使用Bing地圖。

首先,通過在設備/模擬器的瀏覽器上點擊此鏈接,將谷歌地圖安裝到您的設備/模擬器上,出現http://m.google.com/maps/
然後,您可以從您的應用程序調用Google Maps應用程序。下面是一個代碼示例:

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()); 
     } 
    } 
} 

這是應該的樣子:

Home Screen Google Maps

我只在模擬器9800(OS 6)

測試

I GOT THE IDEA FROM HERE

+0

@HeartBeat ..我不認爲使用這是一個很好的選擇,因爲這調用了另一個應用程序和依賴。如果地圖被刪除,那麼你的應用程序將無法工作。 - – 2012-04-20 06:31:29