默认"esri/dijit/Scalebar"的单位文字是scalebar:{km:"km",mi:"mi",ft:"ft",m:"m"}
而且"esri/nls"里的所有文件都是这个,这意味着神马?
这意味着无论我们来自哪个国家,比例尺单位都是"km mi ft m"这种字母!!!Duang,Duang~
不废话,第一步,运行过程中引入文本束类,然后狂改
var map;
require(["esri/map", "dojo/i18n!esri/nls/jsapi", "dojo/domReady!"],
function(Map, bundle) {
bundle.widgets.scalebar.mi = "英里"; bundle.widgets.scalebar.m = "米"; bundle.widgets.scalebar.km = "公里"; bundle.widgets.scalebar.ft = "英尺";
}
);
结果呢, 傻眼了吧,比例尺的宽度,居然容不下中文!!!知道神马叫坑爹了吧。
找到"esri/css/esri.css",打开搜"esriScalebarLabel",把里面的width改为"45%"或者“100px“,你们自己看着办。
最后,有些日期类的控件中的 dd mm神马的也是这种情况,全世界都一样,也差不多是这么个改法。
我觉得arcgis js api越来越落后了,如果不是很专业的应用(很多专业应用也能通过开源方案解决),完全没必要用,省不了多少事,esri是不是迟早要被淘汰呢?