1.本例中服务链接地址可以在arcgis manage server拿到;
2.完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>创建标识点</title>
<link rel="stylesheet" type="text/css" href="http://localhost:8087/arcgis_js_api/library/3.22/3.22/esri/css/esri.css" />
<script src="http://localhost:8087/arcgis_js_api/library/3.22/3.22/init.js"></script>
<script src="../js/jquery-1.3.1.js"></script>
<style>
html, body, #map {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>
<script>
var map;var tb;
var geometryService,toolbar;
require([
"dojo/dom-construct",
"esri/Color",
"esri/dijit/Geocoder",
"esri/dijit/Popup",
"esri/InfoTemplate",
"esri/layers/ArcGISTiledMapServiceLayer",
"esri/map",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/SimpleLineSymbol", "esri/config",
"esri/layers/agstiled","esri/toolbars/draw",
"esri/tasks/query","esri/symbols/SimpleMarkerSymbol","esri/graphic","esri/geometry/Extent","esri/tasks/QueryTask",
"dojo/number","esri/tasks/geometry","esri/symbols/Font","esri/symbols/TextSymbol","esri/tasks/GeometryService",
"dojo/domReady!"
], function(
domConstruct, Color, Geocoder, Popup, InfoTemplate,
ArcGISTiledMapServiceLayer, Map,SimpleFillSymbol,SimpleLineSymbol,Config,
Agstiled,Draw,Query,SimpleMarkerSymbol,Graphic,Extent,QueryTask,number,geometry,Font,TextSymbol,GeometryService
) {
map = new Map("map", {
extent: new Extent({
"xmin":126.08797131337525,"ymin":41.88483304829672,"xmax":130.05572254059723,"ymax":47.20292839632739,
"spatialReference":{"wkid":4326}})
});
var oilAndGasLayer = new ArcGISTiledMapServiceLayer("http://localhost:6080/arcgis/rest/services/itms/MapServer", {
"id": "oilAndGasLayer",
"opacity": 0.75,
"showAttribution":false
});
map.addLayer(oilAndGasLayer);
geometryService=GeometryService("http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer");
toolbar = new Draw(map);
toolbar.on("draw-complete",addToMap);
function addToMap(result) {
map.graphics.clear();
var symbol = new SimpleFillSymbol(
SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol( SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 0, 0]), 2),
new dojo.Color([0, 0, 255, 0.5])
);
var graphic = new Graphic(result.geometry, symbol);
map.graphics.add(graphic);
geometryService.simplify([ result.geometry ], getLabelPoints);
}
function getLabelPoints(polygons) {
geometryService.labelPoints(polygons, function (labelPoints) { // callback
toolbar.deactivate();
map.showZoomSlider();
var font = new Font("20px", Font.STYLE_NORMAL, Font.VARIANT_NORMAL,
Font.WEIGHT_BOLDER);
for (var i = 0, il = labelPoints.length; i < il; i++) {
// create a text symbol
var textSymbol = new TextSymbol(
"X: " + dojo.number.format(labelPoints[i].x) + ", Y: " + dojo.number.format(labelPoints[i].y),
font, new dojo.Color([0, 0, 0])
);
var labelPointGraphic=new Graphic(labelPoints[i],textSymbol);
map.graphics.add(labelPointGraphic);
}
})
}
});
</script>
</head>
<body>
<button dojoType="dijit.form.Button" onClick="toolbar.activate(esri.toolbars.Draw.POLYGON); map.hideZoomSlider();">Polygon</button>
<button dojoType="dijit.form.Button" onClick="toolbar.activate(esri.toolbars.Draw.FREEHAND_POLYGON); map.hideZoomSlider();">Freehand
Polygon</button>
<button dojoType="dijit.form.Button" οnclick="map.graphics.clear();">Clear All</button>
<div id="map" style="width:900px; height:600px; border:1px solid #000;"></div>
</body>
</html>