0

我是 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));


}
4

2 回答 2

1

“attr”变量不需要任何内容​​,因为它是可选的。在上面的示例中,我将删除“attr”,因为它未在函数中定义或不需要。

var graphic = new esri.Graphic(geoPoint, symbol, attr, infoTemplate);

ESRI 有Graphic Class的血统文档。

于 2014-02-19T23:09:26.843 回答
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));

}
于 2015-04-23T04:31:06.533 回答