javascript - 大小与 ArcGIS Javascript SimpleMarkerSymbol JSON 构造函数不一致

标签 javascript json arcgis-js-api

使用 Arcgis Javascript API,我使用 JSON 构造函数创建了一个 SimpleMarkerSymbol。

文档:https://developers.arcgis.com/javascript/jsapi/simplemarkersymbol.html#simplemarkersymbol3

符号的大小和颜色是从 GUI 元素获取的(颜色来自调色板,大小来自输入文本框)。

我的代码非常简单:

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 也会出现同样的问题 https://developers.arcgis.com/javascript/jsapi/simplelinesymbol.html

<小时/>

编辑(2):2016-01-06: Font 和 TextSymbol https://developers.arcgis.com/javascript/jsapi/font.html 也会出现同样的问题 https://developers.arcgis.com/javascript/jsapi/textsymbol.html

最佳答案

这可能会派上用场

points to pixels chart

通过 Reed Design

因为 Arcgis JSAPI 文档中隐藏得很好的代码片段。

JSON object representing the SimpleMarkerSymbol. View the REST API Reference for Symbol Objects for details on creating a JSON symbol. Note that when specifying symbol width and height using JSON the values should be entered in points, the JavaScript API then converts the point values to pixels.

您会注意到您的值与上面的图表非常吻合。即 15 点约为 20 像素,8 点约为 11 像素等。

如果您想以像素为单位指定,请使用 this constructor for SimpleMarkerSymbol

关于javascript - 大小与 ArcGIS Javascript SimpleMarkerSymbol JSON 构造函数不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34636157/

相关文章:

python - 在 Python 中用字节解析 JSON

javascript - node.js:需要 json 文件返回 MODULE NOT FOUND

css - 我有一个缩放栏和一个图例。我想将元素彼此右对齐以及页面移动时

javascript - 如果 Div 为空,隐藏它并改变另一个 div 的宽度

javascript - 星级评分系统点击保存值(value)

javascript - 具有多个流的网络音频

javascript - JSON 和 Javascript - 无法从 JSON 中提取嵌套数据

javascript - 从 block 中的不同函数调用定义 block 中的javascript函数

c# - 是否可以在不使用 ArcGIS Pro 的情况下使用 ArcGIS Web 查看 BIM 模型

javascript - 在动画开始前隐藏一个 div