1. 程式人生 > >Blackberry引路蜂地圖開發示例:地址反編碼

Blackberry引路蜂地圖開發示例:地址反編碼

地址反編碼是通過經緯度查詢對應的地名,下面示例是查詢經緯度為118.777802, 32.061699對應的地名,結果為”中國江蘇省南京市鼓樓區淵聲巷41號”。

//--------------------------------- PACKAGE ------------------------------------ 
package com.pstreets.gisengine.demo.rim; 
  
//--------------------------------- IMPORTS ------------------------------------ 
import com.mapdigit.gis.MapPoint; 
import com.mapdigit.gis.geometry.GeoLatLng; 
import com.mapdigit.gis.raster.MapType; 
import com.mapdigit.gis.service.IReverseGeocodingListener; 
import com.pstreets.gisengine.demo.MapDemoRIM; 
import net.rim.device.api.ui.component.Menu; 
import net.rim.device.api.ui.MenuItem; 
  
//[------------------------------ MAIN CLASS ----------------------------------] 
public class MapReverseGeocodingRIM extends MapDemoRIM implements
 IReverseGeocodingListener   { 
  
    /** 
     * Entry point for application 
     * @param args Command line arguments (not used) 
     */ 
    public static void main(String[] args) 
    { 
        // Create a new instance of the application and make the currently 
        // running thread the application's event dispatch thread. 
        MapReverseGeocodingRIM theApp = new MapReverseGeocodingRIM();        
        theApp.enterEventDispatcher(); 
    } 
      
    private MenuItem mapFindAddressMenuItem = new MenuItem("Find Address", 0, 0){ 
        public void run(){ 
            map.getReverseLocations("32.061699,118.777802");  
        } 
    }; 
  
    public MapReverseGeocodingRIM() { 
  
        init(); 
        pushScreen(canvas); 
        map.setReverseGeocodingListener(this); 
       GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);         
        map.setCenter(center, 13, MapType.MICROSOFTCHINA);  
          
    } 
  
     
    public void done(String arg0, MapPoint[] result) { 
        if (result != null) { 
            map.panTo(result[0].getPoint()); 
        } 
    } 
      
    protected void createMenu(Menu menu, int instance){ 
         menu.add(mapFindAddressMenuItem); 
 } 
}


注意使用字串經緯度格式時,緯度在前,經度在後,如果反了,則返回的地名或能為空或都跑到外國去了。結果也是一個數組,一般到第一個結果,後面結果是更大的區域或是距離相對較遠的地名。