与ArcGIS Javascript SimpleMarkerSymbol JSON构造函数的大小不一致
使用Arcgis Javascript API,我使用JSON构造函数创建了一个SimpleMarkerSymbol 文件: 符号的大小和颜色来自GUI元素(调色板的颜色、输入文本框的大小) 我的代码非常简单:与ArcGIS Javascript SimpleMarkerSymbol JSON构造函数的大小不一致,javascript,json,arcgis-js-api,Javascript,Json,Arcgis Js Api,使用Arcgis Javascript API,我使用JSON构造函数创建了一个SimpleMarkerSymbol 文件: 符号的大小和颜色来自GUI元素(调色板的颜色、输入文本框的大小) 我的代码非常简单: var pointColor = ... //no point in writing this part of the code var pointSize = symbologyTable.getElementsByClassName("inputSize")[0].value;
var pointColor = ... //no point in writing this part of the code
var pointSize = symbologyTable.getElementsByClassName("inputSize")[0].value;
console.log("pointSize = ", pointSize);
var pointSymbol = new esri.symbol.SimpleMarkerSymbol(
{
"color" : pointColor,
"size" : pointSize,
"style" : "esriSMSCircle"
}
);
console.log("pointSymbol = ", pointSymbol);
问题:第二个console.log显示的符号大小与从输入文本框获得的符号大小不一致。例如,如果我创建三个点,更改输入文本框中的值,console.log如下所示:
pointSize = 15
pointSymbol = Object{ color=..., size=20, ...}
pointSize = 8
pointSymbol = Object{ color=..., size=10.66666666, ...}
pointSize = 4
pointSymbol = Object{ color=..., size=5.333333333, ...}
出于调试目的,我尝试在创建pointSymbol变量时直接在JSON中写入大小值(尝试了“size”:15
或“size”:“15”
),但大小始终在console.log中修改
工作原理是setSize(size)
函数:如果我使用pointSymbol.setSize(“15”)
然后打印pointSymbol,它的大小是15
有没有关于JSON大小定义可能不起作用的线索
非常感谢你的帮助
编辑(1):2016-01-06: SimpleLineSymbol也会出现同样的问题
编辑(2):2016-01-06: 字体和文本符号也会出现同样的问题
这可能会派上用场 通过 因为这是Arcgis JSAPI文档中隐藏得很好的片段 表示SimpleMarkerSymbol的JSON对象。有关创建JSON符号的详细信息,请查看符号对象的RESTAPI参考。请注意,使用JSON指定符号宽度和高度时,应以点为单位输入值,然后JavaScript API将点值转换为像素 您会注意到您的值与上面的图表非常匹配。i、 e.15点约为20像素,8点约为11像素等
如果要以像素为单位指定,请使用Wow!谢谢你的信息!