Map service FromMapPoints method

Converts map coordinates to screen coordinates.

FromMapPoints (MapDescription MapDescription, ImageDisplay MapImageDisplay, Multipoint MapPoints, out int[ ] ScreenYValues)

Parameter

Description

MapDescription

Used to define map extent in map units.

ImageDisplay

Used to define the map image extent in pixels.

MapPoints

A Multipoint object containing one or more coordinates in map units. Each coordinate is stored as a PointN object.

ScreenYValues

An integer array containing the Y values for coordinates converted from map to pixel units. The array is populated when the method is called.

Return Value

An integer array containing the X values for coordinates converted from map to pixel units.

Remarks

To convert between map and pixel units, the origin for both must be determined. The origin for coordinates in map units is located in the lower left corner of the map image. The map origin is the minimum x and y value of the current map extent. The origin for coordinates in pixel units is located in the upper left corner of the map image. The pixel origin is always 0,0.

Note that the map service will maintain aspect ratio, so the map extent provided as part of the MapDescription may be different than the map extent used to generate the pixel coordinates. To get the map extent used in the calculation, call ExportMapImage with the same MapDescription and ImageDisplay (as part of ImageDescription). A MapImage is returned where the Extent property references the map extent used by the FromMapPoints method.

Examples

C#

MapService_MapServer mapservice = new MapService_MapServer();

mapservice.Url = "http://localhost:6080/arcgis/services/MapService/MapServer";

 

MapServerInfo mapinfo = mapservice.GetServerInfo(mapservice.GetDefaultMapName());

MapDescription mapdesc = mapinfo.DefaultMapDescription;

 

ImageDisplay imgdisp = new ImageDisplay();

imgdisp.ImageHeight = 500; //pixels

imgdisp.ImageWidth = 500; //pixels

imgdisp.ImageDPI = 96;

 

MultipointN multipoint = new MultipointN();

PointN[] points = new PointN[1];

 

wsmap.PointN pnt0 = new PointN();

pnt0.X = -120.0;

pnt0.Y = 35.0;

 

points[0] = pnt0;

multipoint.PointArray = points;

 

int[] screeny = null;

int[] screenx = mapservice.FromMapPoints(mapdesc, imgdisp, multipoint, out screeny);

VB.NET

Dim mapservice As MapService_MapServer = New MapService_MapServer()

mapservice.Url = "http://localhost:6080/arcgis/services/MapService/MapServer"

 

Dim mapinfo As MapServerInfo = mapservice.GetServerInfo(mapservice.GetDefaultMapName())

Dim mapdesc As MapDescription = mapinfo.DefaultMapDescription

 

Dim imgdisp As ImageDisplay = New ImageDisplay()

imgdisp.ImageHeight = 500 'pixels

imgdisp.ImageWidth = 500 'pixels

imgdisp.ImageDPI = 96

 

Dim multipoint As MultipointN = New MultipointN()

Dim points() As PointN = New PointN(1) {}

Dim pnt0 As wsmap.PointN = New PointN()

pnt0.X = -120.0

pnt0.Y = 35.0

points(0) = pnt0

multipoint.PointArray = points

 

Dim screeny() As Integer = Nothing

Dim screenx() As Integer = mapservice.FromMapPoints(mapdesc, imgdisp, multipoint, screeny)

Java

String serviceURL = "http://localhost:6080/arcgis/services/MapService/MapServer";

MapServerBindingStub mapService = new MapServerBindingStub(serviceURL);

 

String mapName = mapService.getDefaultMapName(); 

MapServerInfo mapInfo = mapService.getServerInfo(mapName);

MapDescription mapDesc = mapInfo.getDefaultMapDescription();

 

ImageDisplay imgDisp = new ImageDisplay();

imgDisp.setImageHeight(500); //Height of the image in pixels

imgDisp.setImageWidth(500); //Width of the image in pixels

imgDisp.setImageDPI(96);

 

PointN[] points = new PointN[1];

PointN pnt0 = new PointN();

pnt0.setX(-120.0);

pnt0.setY(35.0);

points[0] = pnt0;

 

MultipointN multiPoint = new MultipointN();

multiPoint.setPointArray(points);

 

Holder<int[]> screenX = new Holder<int[]>();

Holder<int[]> screenY = new Holder<int[]>();

 

mapService.fromMapPoints(mapDesc, imgDisp, multiPoint, screenX, screenY);

System.out.println("ScreenX: " + screenx.value[0]);

System.out.println("ScreenY: " + screeny.value[0]);

11/8/2016