LWUIT引路蜂地图开发示例:叠加自定义图层

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 03:11 点击:

在开发应用的过程中,常常需要在地图上需绘制一点自定义的兴趣点或是自定义的几何图形。引路蜂地图包中RasterMap最终提供的基实就是一张图片

[java] 
protected void paint(Graphics g) {             
 map.paint(mapGraphics);             
 g.drawImage((Image) mapImage.getNativeImage(), 0, 0, 0);         
 //start drawing your own sharps or images.              
 ... …  

protected void paint(Graphics g) {           
 map.paint(mapGraphics);           
 g.drawImage((Image) mapImage.getNativeImage(), 0, 0, 0);        
 //start drawing your own sharps or images.           
 ... …
}所以一个简单的方法是绘制完地图后,你可以使用任何绘图方法在地图绘制任何自定义的图形或是图象。
这里需要注意的是坐标变换,RasterMap采用的是经纬度坐标,而屏幕显示采用的屏幕坐标,RasterMap提供了坐标转换的方法:fromScreenPixelToLatLng 坐屏幕坐标转换成地图经纬度坐标。fromLatLngToScreenPixel 从经纬度坐标转换成屏幕坐标。
下面给出的例子是采用派生MapLayer子类的方法,RasterMap是 MapLayerContainer的子类,可以用来管理多个地图层。这些图层从下到上相当于透明纸一层一层叠加形成最终显示的地图。
例子中显示几个自定义兴趣点,和一个三角形.

[java] 
package com.pstreets.gisengine.demo.lwuit; 
  
//--------------------------------- IMPORTS ------------------------------------  
import com.mapdigit.gis.MapLayer; 
import com.mapdigit.gis.drawing.IGraphics; 
import com.mapdigit.gis.geometry.GeoLatLng; 
import com.mapdigit.gis.geometry.GeoPoint; 
import com.mapdigit.gis.raster.MapType; 
import com.pstreets.gisengine.demo.MapDemoLWUIT; 
  
public class MapOverlayLWUIT extends MapDemoLWUIT { 
  
    OverLayMapLayer mapLayer; 
     
    public void startApp() { 
        init(); 
        canvas.setTitle("Map Overlay"); 
        
        GeoLatLng center = new  GeoLatLng(32.0616667, 118.7777778); 
        map.setCenter(center, 9, MapType.MICROSOFTCHINA); 
        mapLayer = new OverLayMapLayer(canvas.getWidth(), 
                canvas.getHeight()); 
        map.addMapLayer(mapLayer); 
        canvas.show(); 
    } 
  
    class OverLayMapLayer extends MapLayer { 
  
        GeoLatLng pt1 = new GeoLatLng(32.345281, 118.84261); 
        GeoLatLng pt2 = new GeoLatLng(32.05899, 118.62789); 
        GeoLatLng pt3 = new GeoLatLng(32.011811, 118.798656); 
  
        public OverLayMapLayer(int width, int height) { 
            super(width, height); 
        } 
  
        public void paint(IGraphics graph

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • cocos2d-x学习笔记(19)--label 、label atlas
    • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
    • Cocos2d-x学习(一):HelloWorld
    • cocos2dx在xcode下开发,编译到android上(2)
    • cocos2d 设置屏幕默认方向
    • Cocos2d-x 2.0 之 Actions “三板斧” 之一
    • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
    • cocos2d-x学习笔记(18)--游戏打包(windows平台)
    • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1