Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有自定义wms磁贴提供程序的android mapview_Android_Openstreetmap_Osmdroid_Wms - Fatal编程技术网

具有自定义wms磁贴提供程序的android mapview

具有自定义wms磁贴提供程序的android mapview,android,openstreetmap,osmdroid,wms,Android,Openstreetmap,Osmdroid,Wms,我想加载我的wms服务器,从那里显示磁贴。我使用了carto/nutiteq,一切正常,但我希望它是开源或免费许可证。然后我尝试osmdroid库,但我无法实现wms,有人能帮我吗 // Web Mercator n/w corner of the map. private static final double[] TILE_ORIGIN = {-20037508.34789244, 20037508.34789244}; //array indexes for that data priva

我想加载我的wms服务器,从那里显示磁贴。我使用了carto/nutiteq,一切正常,但我希望它是开源或免费许可证。然后我尝试osmdroid库,但我无法实现wms,有人能帮我吗

// Web Mercator n/w corner of the map.
private static final double[] TILE_ORIGIN = {-20037508.34789244, 20037508.34789244};
//array indexes for that data
private static final int ORIG_X = 0;
private static final int ORIG_Y = 1; //
private static String mLayername = "";

// Size of square world map in meters, using WebMerc projection.
private static final double MAP_SIZE = 20037508.34789244 * 2;

// array indexes for array to hold bounding boxes.
protected static final int MINX = 0;
protected static final int MAXX = 1;
protected static final int MINY = 2;
protected static final int MAXY = 3;
private String layer = "";

/**
 * Constructor
 *
 * @param aName    a human-friendly name for this tile source
 * @param aBaseUrl the base url(s) of the tile server used when constructing the url to download the tiles http://sedac.ciesin.columbia.edu/geoserver/wms
 */
public WMSTileProvider(String aName, String[] aBaseUrl, String layername) {
    super(aName, 8, 22, 255, "image/png", aBaseUrl);
    mLayername = layername;
}


final String WMS_FORMAT_STRING =
        "http://dev.shiveh.com/shiveh?service=WMS&request=GetMap&layers=Shiveh%3AShivehGSLD256&styles=&format=image%2Fpng&transparent=false&version=1.1.1&height=256&width=256&srs=EPSG%3A4326&bbox=";
protected double[] getBoundingBox(int x, int y, int zoom) {
    double tileSize = MAP_SIZE / Math.pow(2, zoom);
    double minx = TILE_ORIGIN[ORIG_X] + x * tileSize;
    double maxx = TILE_ORIGIN[ORIG_X] + (x + 1) * tileSize;
    double miny = TILE_ORIGIN[ORIG_Y] - (y + 1) * tileSize;
    double maxy = TILE_ORIGIN[ORIG_Y] - y * tileSize;

    double[] bbox = new double[4];
    bbox[MINX] = minx;
    bbox[MINY] = miny;
    bbox[MAXX] = maxx;
    bbox[MAXY] = maxy;

    return bbox;
}

url EPSG:4326中的坐标参考系,即lat/lon wgs84。然而,你的方程看起来像是从滑动地图坐标转换成EPSG:900913的方程

您的服务器是否支持该CRS?尝试将CRS url参数切换为EPSG:900913,或更改方程式以计算所请求磁贴的坐标