GridStyle

GridStyle is a Style that takes a list of inflections for a GridLayer. Each inflection is made up of a value, color, and optionally, a description.

SOAP Example

The following SOAP request creates a map with a GridLayer that is styled according to the GridStyle (the color and value for each inflection is provided in an inflection list).

package com.pb;

import com.mapinfo.midev.service.mappingcommon.v1.AggregationMethod;
import com.mapinfo.midev.service.units.v1.Distance;
import com.mapinfo.midev.service.units.v1.DistanceUnit;
import com.mapinfo.midev.service.mapping.v1.GridLayer;
import com.mapinfo.midev.service.mappingcommon.v1.IDWInterpolator;
import com.mapinfo.midev.service.mapping.v1.Map;
import com.mapinfo.midev.service.mapping.v1.MapImage;
import com.mapinfo.midev.service.mapping.ws.v1.MappingService;
import com.mapinfo.midev.service.mapping.ws.v1.MappingServiceInterface;
import com.mapinfo.midev.service.table.v1.NamedTable;
import com.mapinfo.midev.service.geometries.v1.Point;
import com.mapinfo.midev.service.geometries.v1.Pos;
import com.mapinfo.midev.service.mapping.v1.RenderMapRequest;
import com.mapinfo.midev.service.mapping.v1.RenderMapResponse;
import com.mapinfo.midev.service.mapping.ws.v1.ServiceException;
import com.mapinfo.midev.service.mapping.v1.ZoomAndCenterMapView;
import com.mapinfo.midev.service.style.v1.GridStyle;
import com.mapinfo.midev.service.style.v1.Inflection;
import com.mapinfo.midev.service.style.v1.InflectionListType;

import javax.xml.ws.BindingProvider;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

public final class GridStyleInflectionExample {
	private static final File DESTINATION_PATH = new File("c:/temp/GridStyleInflectionExample.png"); // where the map image will be saved
	private static final String MIME_TYPE = "image/png";        // MIME type of the map image
	private static final String STATE_CAP_TABLE_NAME = "/Samples/NamedTables/USA_CAPS";

	private static final String USERNAME = "admin";     // the username to access the Mapping Service
	private static final String PASSWORD = "admin";     // the password to access the Mapping Service

	public static void main(String[] args) throws ServiceException, IOException {
		MappingService mappingService = new MappingService();
		MappingServiceInterface mappingServiceInterface = mappingService.getMappingServiceInterface();

		// set credentials to access the service
		java.util.Map<String, Object> requestContext = ((BindingProvider) mappingServiceInterface).getRequestContext();
		requestContext.put(BindingProvider.USERNAME_PROPERTY, USERNAME);
		requestContext.put(BindingProvider.PASSWORD_PROPERTY, PASSWORD);

		RenderMapRequest renderMapRequest = new RenderMapRequest();

		GridLayer gridLayer = new GridLayer();
			{
				NamedTable stateCapTable = new NamedTable();
				stateCapTable.setName(STATE_CAP_TABLE_NAME);

				gridLayer.setTable(stateCapTable);
			}

			{
				InflectionListType inflectionListType = new InflectionListType();

				List<Inflection> inflections = inflectionListType.getInflection();

				Inflection inflection;

				inflection = new Inflection();
				inflection.setValue(5000);
				inflection.setColor("yellow");
				inflections.add(inflection);

				inflection = new Inflection();
				inflection.setValue(20000);
				inflection.setColor("green");
				inflections.add(inflection);

				inflection = new Inflection();
				inflection.setValue(50000);
				inflection.setColor("blue");
				inflections.add(inflection);

				inflection = new Inflection();
				inflection.setValue(100000);
				inflection.setColor("red");
				inflections.add(inflection);

				inflection = new Inflection();
				inflection.setValue(200000);
				inflection.setColor("white");
				inflections.add(inflection);

				GridStyle gridStyle = new GridStyle();
				gridStyle.setInflectionList(inflectionListType);

				gridLayer.setStyle(gridStyle);
			}

			{
				Distance cellWidth = new Distance();
				cellWidth.setValue(18.1);
				cellWidth.setUom(DistanceUnit.MILE);
				gridLayer.setCellWidth(cellWidth);
			}

				gridLayer.setValueExpression("Pop_1990");

				gridLayer.setSpatialExpression("Obj");

			{
				IDWInterpolator interpolator = new IDWInterpolator();
				interpolator.setSearchRadius(1810);
				interpolator.setExponent(2);
				interpolator.setMaxPoints(20);
				interpolator.setAggregationMethod(AggregationMethod.AVERAGE);
				gridLayer.setInterpolator(interpolator);
			}

			{
				Map map = new Map();
				map.getLayer().add(gridLayer);
				renderMapRequest.setMap(map);
			}

			{
				ZoomAndCenterMapView mapView = new ZoomAndCenterMapView();
				Point center = new Point();
				center.setSrsName("epsg:4267");
				Pos pos = new Pos();
				pos.setX(-97);
				pos.setY(36);
				center.setPos(pos);
				mapView.setMapCenter(center);
				Distance zoom = new Distance();
				zoom.setValue(3350);
				zoom.setUom(DistanceUnit.MILE);
				mapView.setZoomLevel(zoom);

				mapView.setWidth(800);
				mapView.setHeight(600);

				renderMapRequest.setMapView(mapView);
			}

			{
				renderMapRequest.setImageMimeType(MIME_TYPE);
			}

			renderMapRequest.setReturnImage(true);

			RenderMapResponse renderMapResponse = mappingServiceInterface.renderMap(renderMapRequest);

			MapImage mapImage = renderMapResponse.getMapImage();

			byte[] imagePng = mapImage.getImage();

			OutputStream os = new FileOutputStream(DESTINATION_PATH);
			os.write(imagePng);
			os.close();
	}
}