Aqui está um link para o documento da Esri sobre objetos de geometria JSON . A partir dessa página:
A API REST suporta 4 tipos de geometria - pontos, polilinhas, polígonos e envelopes.
Sons como polígonos múltiplos não são suportados. Ver abaixo. Você pode criar vários polígonos adicionando anéis adicionais. Não há nada explícito sobre anéis internos e externos. Estou curioso, então vou analisar mais detalhadamente ... editarei este post se encontrar mais alguma coisa.
Edit: Eu olhei para isso um pouco mais. Parece que se você adicionar anéis que caem dentro de um anel existente, os anéis internos são orifícios. Se você adicionar um anel que não esteja dentro de outro anel, ele será adicionado como um polígono adicional que é basicamente um multi-polígono. Aqui está uma página simples que mostra isso:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Polygons!</title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.1/js/dojo/dijit/themes/claro/claro.css">
<style>
html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
#map{
padding:0;
}
</style>
<script type="text/javascript">var djConfig = {parseOnLoad: true};</script>
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.1"></script>
<script type="text/javascript">
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("esri.map");
var map;
function init() {
var initExtent = new esri.geometry.Extent({"xmin":-12959519,"ymin":3696971,"xmax":-9444639,"ymax":5453188,"spatialReference":{"wkid":102100}});
map = new esri.Map("map",{extent:initExtent});
var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer");
map.addLayer(basemap);
var resizeTimer;
dojo.connect(map, 'onLoad', function(theMap) {
dojo.connect(dijit.byId('map'), 'resize', function() { //resize the map if the div is resized
clearTimeout(resizeTimer);
resizeTimer = setTimeout( function() {
map.resize();
map.reposition();
}, 500);
});
var poly = new esri.geometry.Polygon({"rings":
[
[[-11214840,4858704],[-10520181,4853812],[-10510397,4149368],[-11219732,4144476],[-11214840,4858704]], // ring #1, poly with two holes
[[-11097433,4770648],[-10916430,4770648],[-10916430,4609213],[-10984918,4560294],[-11097433,4614105],[-11097433,4770648]], // ring #2, a hole
[[-10779455,4472238],[-10622912,4349939],[-10750103,4242315],[-10833267,4296127],[-10779455,4472238]], // ring #3, another hole
[[-11298004,4614105],[-11293112,4310803],[-11571954,4305911],[-11542602,4584753],[-11298004,4614105]] // ring #4, western polygon
],
"spatialReference":{"wkid":102100}
});
var sym = new esri.symbol.SimpleFillSymbol({"color":[255,255,0,64],"outline":{"color":[255,0,0,255],"width":1.5,"type":"esriSLS","style":"esriSLSDashDot"},"type":"esriSFS","style":"esriSFSSolid"});
var graphic = new esri.Graphic(poly, sym);
map.graphics.add(graphic);
});
}
dojo.addOnLoad(init);
</script>
</head>
<body class="claro">
<div dojotype="dijit.layout.BorderContainer" design="headline" gutters="false"
style="width: 100%; height: 100%; margin: 0;">
<div id="map" dojotype="dijit.layout.ContentPane" region="center" style="overflow:hidden;">
</div>
</div>
</body>
</html>
Se você carregar essa página, o primeiro anel é o quadrado com dois orifícios. Os dois orifícios são anéis dois e três. O quarto anel no polígono mais ocidental. Pode parecer dois gráficos, mas na verdade é apenas um.
O formato esri json segue de perto o da forma esri.
Os polígonos esri consistem em anéis. Eles podem representar entidades Multipolygon e Polygon do OGC.
Os polígonos geometricamente simples não terão auto-interseções e terão anéis externos no sentido horário e anéis internos (orifícios) no sentido anti-horário. Se você está lendo os serviços da Esri, é isso que você obtém normalmente.
Os polígonos não simples (aqueles que têm anéis orientados de maneira diferente ou têm auto-interseções) devem ser interpretados usando a regra de preenchimento ímpar regular ao desenhar ou fazer um ponto no teste de polígono .
Ao converter do polígono OGC Multipolygon para Esri, verifique se os anéis externos estão orientados no sentido horário e os orifícios estão no sentido anti-horário.
fonte