Overview
This topic discusses the JSON representation of geodata transformation objects. The image service's Add and Update operations support a geodata
parameter. This parameter is an array of geodata
objects.
A geodataTransform object has the following JSON syntax:
Syntax
{
"geodataTransform": "<geodataTransformName>",
"geodataTransformArguments": {<geodataTransformArguments>}
}
The structure of the geodata
object varies based on the geodata
type. There are three types of geodata
objects, which are listed below:
- Polynomial transformation
- Projective transformation
- Identity transformation
Polynomial transformation
{
"geodataTransform": "Polynomial",
"geodataTransformArguments": {
"sourcePoints": [<sourcePoint1>, <sourcePoint2>, <sourcePoint3> ...], //array of points
"targetPoints": [<targetPoint1>, <targetPoint2>, <targetPoint3> ...], //array of points
"coeffx": [<coeffx11>, <coeffx12>], //array of doubles
"coeffy": [<coeffy11>, <coeffy12>], //array of doubles
"inverseCoeffx": [<inverseCoeffx11>, <inverseCoeffx12>], //array of doubles
"inverseCoeffy": [<inverseCoeffy11>, <inverseCoeffy12>], //array of doubles
"spatialReference": {<spatialReference1>},
"polynomialOrder": <polynomialOrder1> //integer: 1, 2, or 3. First order requires at least 3 pairs of control points; second order requires at least 6 pairs of control points; third order requires at least 10 pairs of control points; use more control points to get better fit (smaller RMS)
}
}
Projective transformation
{
"geodataTransform": "Projective",
"geodataTransformArguments": {
"sourcePoints": [<sourcePoint1>, <sourcePoint2>, <sourcePoint3> ...], //array of points
"targetPoints": [<targetPoint1>, <targetPoint2>, <targetPoint3> ...], //array of points
"coeffx": [<coeffx11>, <coeffx12>...], //array of doubles
"coeffy": [<coeffy11>, <coeffy12>...], //array of doubles
"inverseCoeffx": [<inverseCoeffx11>, <inverseCoeffx12>], //array of doubles
"inverseCoeffy": [<inverseCoeffy11>, <inverseCoeffy12>], //array of doubles
"spatialReference": {<spatialReference1>}
}
}
Identity transformation
{
"geodataTransform": "Identity",
"geodataTransformArguments": {
"spatialReference": {<spatialReference1>}
}
}