package com.nutiteq.advancedmap3;
import android.os.Bundle;
import com.nutiteq.advancedmap3.datasource.HttpWmsTileDataSource;
import com.nutiteq.core.MapPos;
import com.nutiteq.layers.RasterTileLayer;
/**
* A sample demonstrating how to use WMS service raster on top of
* the vector base map
*/
public class WmsMapActivity extends VectorMapSampleBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// MapSampleBaseActivity creates and configures mapView
super.onCreate(savedInstanceState);
// basic Nutiteq sample WMS
// String url = "http://kaart.maakaart.ee/geoserver/wms?transparent=true&";
// String layers = "topp:states";
// USGS Base map: http://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer
String url = "http://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WmsServer?";
String layers = "0";
HttpWmsTileDataSource wms = new HttpWmsTileDataSource(0, 14, baseProjection, false, url, "", layers, "image/png8");
RasterTileLayer wmsLayer = new RasterTileLayer(wms);
// Calculate zoom bias, basically this is needed to 'undo' automatic DPI scaling, we will display original raster with close to 1:1 pixel density
double zoomLevelBias = Math.log(mapView.getOptions().getDPI() / 160) / Math.log(2);
wmsLayer.setZoomLevelBias((float) zoomLevelBias);
mapView.getLayers().add(wmsLayer);
// finally animate map to map coverage
mapView.setFocusPos(baseProjection.fromWgs84(new MapPos(-100, 40)), 1);
mapView.setZoom(5, 1);
}
}