• [转]worldwind在线加载google地图,或者基于墨卡托投影的切片地图


    package gis1;
     
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import gov.nasa.worldwind.avlist.AVKey;
    import gov.nasa.worldwind.avlist.AVList;
    import gov.nasa.worldwind.avlist.AVListImpl;
    import gov.nasa.worldwind.geom.Angle;
    import gov.nasa.worldwind.geom.LatLon;
    import gov.nasa.worldwind.layers.mercator.BasicMercatorTiledImageLayer;
    import gov.nasa.worldwind.layers.mercator.MercatorSector;
    import gov.nasa.worldwind.util.LevelSet;
    import gov.nasa.worldwind.util.Tile;
    import gov.nasa.worldwind.util.TileUrlBuilder;
     
    public class GoogleLayer extends BasicMercatorTiledImageLayer{
     
        public GoogleLayer() {
            super(makeLevels());
            // TODO Auto-generated constructor stub
        }
     
        private static LevelSet makeLevels() {
            // TODO Auto-generated method stub
            AVList params = new AVListImpl();
     
            params.setValue(AVKey.TILE_WIDTH, 256);
            params.setValue(AVKey.TILE_HEIGHT, 256);
            params.setValue(AVKey.DATA_CACHE_NAME, "Earth/GoogleMap");
            params.setValue(AVKey.DATASET_NAME, "*");
            params.setValue(AVKey.FORMAT_SUFFIX, ".jpg");
            params.setValue(AVKey.NUM_LEVELS, 16);
            params.setValue(AVKey.NUM_EMPTY_LEVELS, 0);
            params.setValue(AVKey.LEVEL_ZERO_TILE_DELTA, new LatLon(Angle
                    .fromDegrees(22.5d), Angle.fromDegrees(45d)));
            params.setValue(AVKey.SECTOR, new MercatorSector(-1.0, 1.0,
                    Angle.NEG180, Angle.POS180));
            params.setValue(AVKey.TILE_URL_BUILDER, new URLBuilder());
     
            return new LevelSet(params);
        }
        private static class URLBuilder implements TileUrlBuilder
        {
            public URL getURL(Tile tile, String imageFormat)
                    throws MalformedURLException
            {
                String url=String.format(
                        "http://www.google.cn/maps/vt?lyrs=s@183&gl=cn&x=%s&y=%s&z=%s",
                        tile.getColumn(),
                        (1 << (tile.getLevelNumber()) + 3) - 1 - tile.getRow(),
                        (tile.getLevelNumber() + 3) 
                        );
                System.out.println(url);
                return new URL(url);
            }
        }
     
    }
  • 相关阅读:
    pid系统控制算法
    pandas+numpy 对df数据中的某列进行等分分桶操作
    pandas学习
    angular6 数组遍历项进行双向绑定 丢失焦点 问题解决
    TypeScript 之构造器 constructor 方法 methods
    公开便民信息网站收集
    C++11_线程池
    百度网盘信息
    【赵强老师】MongoDB中的索引(下)
    TDSQL 4001 备份故障处理案例
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/12355296.html
Copyright © 2020-2023  润新知