2016-01-06 70 views
1

使用ArcGIS API的Javascript,我創建了一個SimpleMarkerSymbol與JSON構造。尺寸不連貫使用ArcGIS的JavaScript SimpleMarkerSymbol JSON構造

文檔: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, ...} 

調試目的,我曾嘗試直接在JSON寫一個大小值,同時創造所述pointSymbol變量(試圖要麼"size" : 15"size" : "15"),但是尺寸總是在的console.log修改。

是什麼工作是setSize(size)功能:如果我使用pointSymbol.setSize("15")然後打印pointSymbol,它的尺寸爲15

任何線索,爲什麼JSON大小定義可能不工作?

非常感謝您的幫助!


EDIT(1):2016年1月6日:2016年1月6日: 同樣的問題與的SimpleLineSymbol https://developers.arcgis.com/javascript/jsapi/simplelinesymbol.html


EDIT(2)發生 同樣的問題與字體和TextSymbol https://developers.arcgis.com/javascript/jsapi/font.html https://developers.arcgis.com/javascript/jsapi/textsymbol.html

回答

1

發生這可能會派上用場

points to pixels chart

通過Reed Design

因爲在ArcGIS JSAPI文檔該井隱藏片斷。表示SimpleMarkerSymbol

JSON對象。查看符號對象的詳細信息的REST API參考上創建一個JSON符號。請注意,指定符號寬度和使用JSON高度的值應在點輸入時,JavaScript的API那麼點值轉換爲像素。

你會發現,你的價值觀匹配很好地與上面的圖。即15點大約爲20像素,8點大約是11個像素等

如果你想以像素爲單位指定然後使用this constructor for SimpleMarkerSymbol

+0

哇!謝謝(你的)信息! – nouklea