Thank your local programmer

In Looking for a public Web Processing Service (WPS)

6. December 2011 12:18 by Scott in ESRI, GIS  //  Tags: , ,   //   Comments (0)

I was looking for some public WPS’s to run some tests against.  Well, my searches didn’t pull up much in Google or Bing until I got more detailed, so for all the world to see here are some that I found.

I found a good list here at least to start testing with.

WPS

http://wps.globalsoilmap.net/pywps.cgi?&version=1.0.0&service=WPS&request=GetCapabilities

http://giv-wps.uni-muenster.de:8080/wps/WebProcessingService

http://deegree3-testing.deegree.org/deegree-wps-demo/services

http://zoo-project.org/cgi-bin-new/zoo_loader.cgi

CIESIN

http://beta.sedac.ciesin.columbia.edu/wps/WebProcessingService?Request=GetCapabilities&Service=WPS

WMS

CATHALAC

http://maps.cathalac.org/wmsconnector/com.esri.wms.Esrimap/dataframeworklayers?Request=GetCapabilities&Service=WMS

CIESIN

http://sedac.ciesin.columbia.edu/mapserver/map/HOTSPOTSv1?Request=GetCapabilities&Version=1.1.1&Service=WMS

DEPHA

http://www.dephadata.org/geoserver/demo.do">map demo

DEPHA

http://www.dephadata.org/geoserver/ows?service=WFS&request=GetCapabilities

DEPHA

http://www.dephadata.org/geoserver/ows?service=WMS&request=GetCapabilities

GEMS/WATER

http://www.gemstat.org/WS/stationByCountry.aspx?service=WFS&version=1.0.0&request=GetCapabilities

GRID/GENEVA GEO

http://geodata.grid.unep.ch/webservices/">directory -

GRID/GENEVA GEO

http://gridca.grid.unep.ch/cgi-bin/mapserv?map=/www/geodataportal/htdocs/mod_map/geo_wms.map&service=wms&version=1.1.1&request=getcapabilities

GRID-Arendal

http://maps.continentalshelf.org/wfsconnector/com.esri.wfs.Esrimap/osdsF?request=getcapabilities

GRID-Arendal

http://maps.continentalshelf.org/wmsconnector/com.esri.wms.Esrimap/shelfdatashop?request=getcapabilities&service=WMS&version=1.1.1

GRID-Nairobi

http://gridnairobi.unep.org/aimscsw/csw2.0?request=GetCapabilities&version=2.0.0&service=CSW

GRID-Sioux Falls

http://na.unep.net/cgi-bin/global_postgis?request=getcapabilities&Service=wms&version=1.1.1">here

 

ICIMOD

http://216.108.232.20:8080/geonetwork/srv/en/csw?request=GetCapabilities&service=CSW&acceptVersions=2.0.1&acceptFormats=application%2Fxml

ICIMOD

http://216.108.232.20:8080/geoserver/wms?service=WMS&request=GetCapabilities

NDIDC

http://nsidc.org/cgi-bin/atlas_north?service=WFS&request=GetCapabilities

NDIDC

http://nsidc.org/cgi-bin/atlas_south?service=WFS&request=GetCapabilities

UNEP PREVIEW

http://preview.grid.unep.ch:8080/geoserver/ows?service=WFS&request=GetCapabilities

UNEP PREVIEW

http://preview.grid.unep.ch:8080/geoserver/ows?service=WMS&request=GetCapabilities

UNEP/DEWA

http://dewa03.unep.org/geoserver/ows?service=WFS&request=GetCapabilities UNEP/DEWA

http://dewa03.unep.org/geoserver/ows?service=WMS&request=GetCapabilities

WCMC

http://maps.unep-wcmc.org/arcgis/services/WDPAv2_0/wdpa_all_WGS84/MapServer//WFSServer?request=GetCapabilities&service=WFS

WCMC

http://maps.unep-wcmc.org/arcgis/services/WDPAv2_0/wdpa_all_WGS84/MapServer//WMSServer?request=GetCapabilities&service=WMS

Draw a Circle Graphic with ESRI Android SDK

14. November 2011 12:56 by Scott in Development, ESRI  //  Tags: , , ,   //   Comments (0)

I wrote this code a while back.  The requirement was to have a user draw a circle with the ESRI Android SDK.  Well, their Android SDK doesn't currently support drawing circles.  It draws all other types of polygons except for the circle.  So what does a Software Engineer do, we come up with our own implementation.

So for the world to see, here it is:

First we capture the OnMotionEvent and the comments are in line.

Hope this helps someone.

    public boolean onDragPointerMove(MotionEvent from, MotionEvent to) {

        if (tempCircleGraphic != null)
            _graphicsLayer.removeGraphic(tempCircleGraphic);

        // creates a new polygon to be drawn.
        _circleTemp = new Polygon();

        Point point = _map.toMapPoint(to.getX(), to.getY());

        // If the starting point is null, create a polyline and start a
        // path.
        if (_startPoint == null) {
            _startPoint = _map.toMapPoint(from.getX(), from.getY());
            // creates a polyline so we can measure the radius of the
            // person
            // drawing the circle.
            _polylineTemp = new Polyline();
            // starts the poly line
            _polylineTemp.startPath(_startPoint.getX(), _startPoint.getY());
        }
        // continues the draw of the poly line
        _polylineTemp.lineTo((float) point.getX(), (float) point.getY());

        // calculates the circle when getting ready to be drawn.
        int pointsAroundCircle = 50; // N
        double radius = _polylineTemp.calculateLength2D(); // radius
        for (int i = 0; i < pointsAroundCircle; i++) {
            double fi = 2 * Math.PI * i / pointsAroundCircle;
            double x = radius * Math.sin(fi + Math.PI) + _startPoint.getX();
            double y = radius * Math.cos(fi + Math.PI) + _startPoint.getY();
            if (i == 0) // starts the drawing of the circle. if
                        // beginning
                        // the for loop
                _circleTemp.startPath(x, y);
            else if (i == pointsAroundCircle - 1) // ends the circle
                                                    // when at
                                                    // the end of the
                // for loop.
                _circleTemp.closeAllPaths();
            else
                // continues drawing the cirlce while it iterates
                _circleTemp.lineTo(x, y);
        }
        // creates a new graphic and sets the geometry to a polygon.
        Graphic graphic = new Graphic();
        graphic.setGeometry(_circleTemp);

        int drawColor = getDrawColor();
        int transparentColor = Color.argb(POLYGON_ALPHA, Color.red(drawColor),
                Color.green(drawColor), Color.blue(drawColor));
        SimpleFillSymbol fillSymbol = new SimpleFillSymbol(transparentColor);
        graphic.setSymbol(fillSymbol);
        
        tempCircleGraphic = graphic;
        // add the updated graphic to graphics layer
        _graphicsLayer.addGraphic(graphic);

        // Refresh the graphics layer
        _graphicsLayer.postInvalidate();
        return true;

    }