我是ESRI Javascript API的新手。我不明白需要在新图形的线上使用attr。
var graphic = new esri.Graphic(geoPoint, symbol, attr, infoTemplate);
这是我捆绑在一起的许多样本代码的最后一部分。有人请建议一个解决方案。谢谢您的帮助。以下是整个功能。如果您需要整个脚本,请告诉我。
function onGeocodesuccess(results)
{
console.log(results);
var geoPoint = new esri.geometry.Point(results.utm_x, results.utm_y, map.spatialReference);
var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 15, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,255]), 2), new dojo.Color([0,0,255]));
var infoTemplate = new esri.InfoTemplate("Attributes", "${*}");
var graphic = new esri.Graphic(geoPoint, symbol, attr, infoTemplate);
map.graphics.add(graphic);
map.infoWindow.setTitle(graphic.getTitle());
map.infoWindow.setContent(graphic.getContent());
var screenPnt = map.toScreen(geoPoint);
map.infoWindow.show(screenPnt,map.getInfoWindowAnchor(screenPnt));
}
答案 0 :(得分:1)
“attr”变量不需要任何内容,因为它是可选的。在上面的示例中,我将删除“attr”,因为它未在函数中定义或需要。
var graphic = new esri.Graphic(geoPoint, symbol, attr, infoTemplate);
ESRI有Graphic Class的下降文档。
答案 1 :(得分:0)
attr是一个对象,其中包含字段名称和字段值的值,通常填充从服务器返回的功能。当您创建新图形时,这是一个可选参数,如上所述,您可以在创建新图形时不使用此参数,在您的情况下,这将是:
function onGeocodesuccess(results) {
console.log(results);
var geoPoint = new esri.geometry.Point(results.utm_x, results.utm_y, map.spatialReference);
var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE, 15, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,255]), 2), new dojo.Color([0,0,255]));
var infoTemplate = new esri.InfoTemplate("Attributes", "${*}");
var graphic = new esri.Graphic(geoPoint, symbol);
map.graphics.add(graphic);
map.infoWindow.setTitle(graphic.getTitle());
map.infoWindow.setContent(graphic.getContent());
var screenPnt = map.toScreen(geoPoint);
map.infoWindow.show(screenPnt,map.getInfoWindowAnchor(screenPnt));
}