情形一:如果是通过点击得到的geometry或者是通过arcgis api查询地图服务获取的features,可以直接new Graphic(geometry,symbol),添加在graphiclayer,显示在地图上。
情形二:如果是手动拼接的坐标串,则需要首先new Polyline(jsonData) 【点和面一样,点:new Point(jsonData),面new Polygon(jsonData)】,然后再new Graphic(polyLine,lineSymbol),不可以直接new Graphic(geometry,lineSymbol)
require([
"esri/symbols/SimpleLineSymbol",
"esri/geometry/Polyline",
"esri/graphic",
"esri/layers/GraphicsLayer"
],
function (SimpleLineSymbol,Polyline,Graphic,GraphicsLayer) {
var lineSymbol=new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0]), 3);
var polyLine = new Polyline(jsonData);
//jsonData的数据结构参见https://developers.arcgis.com/javascript/3/jsapi/polyline-amd.html#polyline2
//定义图形
// var graphic=new Graphic(geometry,lineSymbol);//情形一
var graphic=new Graphic(polyLine,lineSymbol);//情形二
var graphicsLayer = new GraphicsLayer();
//将图形添加到图层中
graphicsLayer.add(graphic);
map.addLayer(graphicsLayer);
})