I am currently making an app for my final career project, and I am trying to combine the layer of Google Maps and WMS layer that displays a map from a WMS server, helping me with ArcGis SDK for Android,

The MapView object of the ArcGIS API for Android allows you to add WMS layers (with the object WMSLayer), while Google Maps Android API v2 does not allow it, and I can't find a way of combining these layers.

Someone could tell me if this is possible?

  • The question title seems to be answered in the question. The answer to the question title, as noted in the question is I think "No" ~ developers.google.com/maps/documentation/android/intro tells us that ~ With the Google Maps Android API, you can add maps based on Google Maps data to your application.
    – nmtoken
    Apr 19, 2014 at 13:36
  • Ok thanks nmtoken, now I know it, i will use only wms layers because i need to show some information that google maps doesn't have,
    – davidmt
    Apr 19, 2014 at 16:03

3 Answers 3


It is possible to extend google maps API functionality to support WMS Tile Layers. All you have to do is compute the bounding box in EPSG:3857 before and add that as parameter to the request extending google's TileLayer capabilities.

Here is a nice source for doing that: http://www.azavea.com/blogs/labs/2013/01/wms-on-android/


yes you can Implement Using a Google Maps Android API v2, TileLayer please go through with this code it might help you : https://github.com/akshay-shetty/wms_service/tree/master


Yes, you can display WMS layer. Below is the code. You can use this by changing your WMS URL.

public static WMSTileProvider getOsgeoWmsTileProvider(String url) {

        //This is configured for:
        // http://beta.sedac.ciesin.columbia.edu/maps/services
        // (TODO check that this WMS service still exists at the time you try to run this demo,
         if it doesn't, find another one that supports EPSG:900913
        final String WMS_FORMAT_STRING =                "https://ahocevar.com/geoserver/wms" +
                "?service=WMS" +
                "&version=1.1.1" +
                "&request=GetMap" +
            "&layers=topp:states" +
                "&bbox=%f,%f,%f,%f" +
                "&width=256" +
                "&height=256" +
                "&srs=EPSG:900913" +  // NB This is important, other SRS's won't work.
                "&format=image/png" +
        final String WMS_FORMAT_STRING=url;

        WMSTileProvider tileProvider = new WMSTileProvider(500,500) {
            public synchronized URL getTileUrl(int x, int y, int zoom) {
                double[] bbox = getBoundingBox(x, y, zoom);
                String s = String.format(Locale.US, WMS_FORMAT_STRING, bbox[MINX],
                        bbox[MINY], bbox[MAXX], bbox[MAXY]);
                Log.d("WMSDEMO", s);
                URL url = null;
                try {
                    url = new URL(s);
                } catch (MalformedURLException e) {
                    throw new AssertionError(e);
                return url;
        return tileProvider;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.