当前位置:编程学习 > wap >>

Blackberry引路蜂地图开发示例:路径查询

可以通过RasterMap的getDirection()方法来查询路径,和查询地址类似,路径查询的结果也是通过回调函数的方式来通知应用程序的,下面的例子返回南京到北京的路径。返回结果存放在MapDirection中,MapDirection包含了路径的详细信息,包括路径的每个步骤,长度,时间,方向等

[java]
//--------------------------------- PACKAGE ------------------------------------  
package com.pstreets.gisengine.demo.rim;  
  
//--------------------------------- IMPORTS ------------------------------------  
import com.mapdigit.gis.MapDirection; 
import com.mapdigit.gis.geometry.GeoLatLng; 
import com.mapdigit.gis.raster.MapType; 
import com.mapdigit.gis.service.IRoutingListener; 
import com.pstreets.gisengine.demo.MapDemoRIM; 
import net.rim.device.api.ui.component.Menu; 
import net.rim.device.api.ui.MenuItem;  
  
//[------------------------------ MAIN CLASS ----------------------------------]  
/**
 *  Map routing demo for Guidebee Map API on RIM platform.
 * <hr><b>© Copyright 2011 Guidebee, Inc. All Rights Reserved.</b>
 * @version     1.00, 10/02/11
 * @author      Guidebee Pty Ltd.
 */ 
public class MapRoutingRIM extends MapDemoRIM implements    IRoutingListener {  
  
    /**
     * 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.  
        MapRoutingRIM theApp = new MapRoutingRIM();       
        theApp.enterEventDispatcher(); 
    } 
     
    private MenuItem mapGetDirectionMenuItem = new MenuItem("Get Direction", 0, 0){ 
        public void run(){ 
            String name1 = "南京";            
            String name2 = "北京";            
            map.getDirections("from: " + name1 + " to: " + name2); 
        } 
    };  
  
    public MapRoutingRIM() {  
  
        init(); 
        pushScreen(canvas); 
        map.setRoutingListener(this); 
        GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);        
        map.setCenter(center, 13, MapType.MICROSOFTCHINA); 
         
    }  
  
    public void done(String arg0, MapDirection result) { 
        if (result != null) { 
            map.setMapDirection(result); 
            map.resize(result.getBound()); 
            map.setZoom(5); 
        } 
    } 
     
    protected void createMenu(Menu menu, int instance){ 
         menu.add(mapGetDirectionMenuItem);  
  
   } 

//--------------------------------- PACKAGE ------------------------------------
package com.pstreets.gisengine.demo.rim;
 
//--------------------------------- IMPORTS ------------------------------------
import com.mapdigit.gis.MapDirection;
import com.mapdigit.gis.geometry.GeoLatLng;
import com.mapdigit.gis.raster.MapType;
import com.mapdigit.gis.service.IRoutingListener;
import com.pstreets.gisengine.demo.MapDemoRIM;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.MenuItem;
 
//[------------------------------ MAIN CLASS ----------------------------------]
/**
 *  Map routing demo for Guidebee Map API on RIM platform.
 * <hr><b>© Copyright 2011 Guidebee, Inc. All Rights Reserved.</b>
 * @version     1.00, 10/02/11
 * @author      Guidebee Pty Ltd.
 */
public class MapRoutingRIM extends MapDemoRIM implements    IRoutingListener {
 
    /**
     * 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.
        MapRoutingRIM theApp = new MapRoutingRIM();     
        theApp.enterEventDispatcher();
    }
   
    private MenuItem mapGetDirectionMenuItem = new MenuItem("Get Direction", 0, 0){
        public void run(){
            String name1 = "南京";          
            String name2 = "北京";          
            map.getDirections("from: " + name1 + " to: " + name2);
        }
    };
 
    public MapRoutingRIM() {
 
        init();
        pushScreen(canvas);
        map.setRoutingListener(this);
        GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);      
        map.setCenter(center, 13, MapType.MICROSOFTCHINA);
       
    }
 补充:移动开发 , 其他 ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,