您的位置:首页 > Web前端 > JavaScript

arcgis for js实现缓冲区分析功能

2018-01-04 17:04 751 查看
1.之前在arcgis开发中出现缓冲区分析无法出来,写个博客记录下

2.案例中使用的地图服务都可以在arcgis server manager中创建地图服务器切片地址和buffer服务地址;

实现全部代码如下:

<!DOCTYPE html>
<html>
<head>
<title>Buffer缓冲区分析</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
<title>Shapes and Symbols</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, #mapDiv {
padding:0;
margin:0;
height:100%;
}
</style>
<script>
var map, tb;
var geometryService;
require([
"esri/map", "esri/toolbars/draw",
"esri/symbols/SimpleFillSymbol", "esri/symbols/SimpleLineSymbol",
"esri/symbols/PictureFillSymbol", "esri/symbols/SimpleFillSymbol",
"esri/graphic",
"esri/Color", "dojo/dom", "dojo/on",
"esri/layers/ArcGISTiledMapServiceLayer",
"esri/tasks/GeometryService","esri/SpatialReference","esri/tasks/BufferParameters","esri/geometry/Geometry","dojo/_base/array",
"dojo/domReady!"
], function(
Map, Draw,
SimpleMarkerSymbol, SimpleLineSymbol,
PictureFillSymbol, SimpleFillSymbol,
Graphic,
Color, dom, on,
ArcGISTiledMapServiceLayer,GeometryService,SpatialReference,BufferParameters,Geometry,array
) {
map = new Map("mapDiv", {
"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");
map.addLayer(oilAndGasLayer);
geometryService=GeometryService("http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer");
map.on("click",function(evt){
debugger
map.graphics.clear();
var symbol = new SimpleMarkerSymbol();
var graphic = new Graphic(evt.mapPoint, symbol);
var params = new BufferParameters();
params.geometries = [ graphic.geometry ];
params.distances = [ 0.1, 0.2 ];
params.unit = BufferParameters.UNIT_KILOMETER;
params.bufferSpatialReference = new SpatialReference({wkid:32649});
params.outSpatialReference = map.spatialReference;
geometryService.buffer(params, showBuffer);
});
function showBuffer(bufferedGeometries) {
debugger
var symbol = new SimpleFillSymbol(
SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color([0,0,255,0.65]), 2
),
new Color([0,0,255,0.35])
);
array.forEach(bufferedGeometries, function(geometry) {
var graphic = new Graphic(geometry, symbol);
map.graphics.add(graphic);
});
}
});
</script>
</head>

<body>
<div id="mapDiv" ></div>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息