内容简介:arcgis for javascript 绘制多边形
arcgis for javascript 绘制多边形。怎样绘制呢?
1、读取数据库中的多边形数据
2、在地图上绘制多边形
3、地图放大,并定位到指定的坐标
地图放大很重要。因为一般我们画的多边形,可能放在一幅全国地图里,会非常的小,如果不放大地图比例,还以为我们啥都没画。
1、读取数据库中的多边形数据不提。我读的是一个oracle数据库中的,geometry类型的字段内容。要把它转成
""polygon"":[[121.55535194, 28.56218222],[121.55510556, 28.56213333],[121.55667889, 28.55941528],[121.55660250, 28.55925389],[121.55492417, 28.55878417],[121.55445528, 28.55865306],[121.55254972, 28.55811944],[121.55234250, 28.55820278],[121.55084500, 28.56132222],[121.55058722, 28.56127278],[121.55220694, 28.55790889],[121.55452083, 28.55855889],[121.55457000, 28.55845778],[121.55671556, 28.55905833],[121.55693139, 28.55897861],[121.55940111, 28.55471250],[121.55684139, 28.55379361],[121.55708361, 28.55329611],[121.55738778, 28.55267444],[121.55988917, 28.55357222],[121.56039806, 28.55376333],[121.56187444, 28.55433389],[121.56232306, 28.55451222],[121.56401778, 28.55520639],[121.56327111, 28.55624194],[121.56155694, 28.55554528],[121.55962750, 28.55479722],[121.55716861, 28.55904500],[121.55724500, 28.55920639],[121.55912667, 28.55973306],[121.56048028, 28.56011194],[121.56035333, 28.56030361],[121.55713167, 28.55940194],[121.55691583, 28.55948167],[121.55535194, 28.56218222]],
这种格式。
如何绘制呢?
1)动态构造一个要素图层FeatureLayer(属于图形图层),并添加到地图;
2)在地图添加图层事件中,绘制几何图形
一个图形图层,可以绘制多个几何图形,不同颜色,不同边线。
//图层成功添加后,向服务器请求数据,并绘制到该图层
map.on("layers-add-result", function (results) {
function requestSucceeded(response, io) {
var features = [];
var point;
array.forEach(response.items, function (item) {
var attr = {};
attr["description"] = item.description;
attr["title"] = item.title ? item.title : "移动采集";
//定义“画笔”
var symbol = new SimpleFillSymbol({
"type": "esriSFS",
"style": "esriSFSSolid",
"color": item.bg,//背景色在服务器数据中定义
"outline": {//轮廓
"type": "esriSLS",
"style": "esriSLSSolid",
"color": item.outline,
"width": 1
}
});
//绘制一个多边形
var polygon = new Polygon(new SpatialReference({ wkid: 4326 }));
polygon.addRing(item.polygon);
var graphic = new Graphic(polygon, symbol);
graphic.setAttributes(attr);
point = new Point([item.longitude, item.latitude], new SpatialReference({ wkid: 4326 }));
features.push(graphic);//画好的多边形加到要素集
});
results.layers.forEach(function (resultitem) {//要素集加到图层
resultitem.layer.applyEdits(features, null, null);
});
if (point != null) {
map.centerAndZoom(point, 15);//缩放并定位
}
}
function requestFailed(error) {
}
var requestHandle = esriRequest({
url: requestUrl,//数据请求地址
callbackParamName: "jsoncallback"
});
requestHandle.then(requestSucceeded, requestFailed);
});
有关这个symbol,可以参考如下资料:
http://help.arcgis.com/en/arcgisserver/10.0/apis/rest/symbol.html#sfs 。十几天前,我对这个symbol颇有感悟,但现在已经忘得差不多了。
3、地图放大,并定位到这个多边形的第一个点。
map.centerAndZoom(point, 15);//缩放并定位
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 论如何获取 2 个多边形相交关系
- 如何判断一个多边形是否合法 (Swift 代码实现)
- 微信小程序-测试游戏生成六边多边形
- 计算一个多边形的重心点坐标 (Swift 代码实现)
- 单一div的正多边形变换(纯CSS)
- ViewGroup 默认顺序绘制子 View,如何修改?什么场景需要修改绘制顺序?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Design Handbook
Baeck, Philippe de 编 / 2009-12 / $ 22.54
This non-technical book brings together contemporary web design's latest and most original creative examples in the areas of services, media, blogs, contacts, links and jobs. It also traces the latest......一起来看看 《Web Design Handbook》 这本书的介绍吧!