本次记录使用的是vue2.0使用esri-loader加载地图,并将英文转为中文。
由于国内地图服务一些高级功能或访问量多的时候基本都是收费的,arcgis相对收费功能较少,而且访问量上计较宽松,公司为了节约成本所以选择使用arcgis作为地图服务。
而在国内使用,arcgis for js api加载的地图默认是英文,对国内用户不太友好,曾在百度 google搜索了一圈发现将arcgis地图的英文转为中文的教程非常少,也可能是国内使用arcgis作为地图服务的较少,所以将本次学习记录分享,欢迎大家交流。
直接上代码:
// 这是我的本地arcgis服务,也可以使用arcgis的官方外网地图服务
setDefaultOptions({url: 'http://localhost:9001/arcgis/4.30/init.js'})
loadCss('http://localhost:9001/arcgis/4.30/esri/themes/light/main.css')
let option = {
css: true
}
loadModules(["esri/config",
"esri/Map",
"esri/views/MapView",
"esri/layers/VectorTileLayer"], option).then(([esriConfig, Map, MapView, VectorTileLayer]) => {
// 这是你申请的arcgis账户授权的apiKey,目前不支持未授权访问
esriConfig.apiKey = "你的apiKey";
// 这是将地图转为中文的关键api,目前没有研究到可以访问的本地api(也许因为需要apiKey可能不支持本地服务api),如果有知道本地服务api的欢迎在评论区指出,感谢!
const allPlaces = `https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/styles/arcgis/streets?places=all&token=${esriConfig.apiKey}`;
const vtl = new VectorTileLayer({
style: allPlaces,
})
let map = new Map({
basemap: {
baseLayers: [vtl],
style: {
id: "arcgis/streets",
language: "zh-CN"//这个指定语言配置也需要加上
}
}
});
let view = new MapView({
container: "mapview",
map: map,
zoom: 16,
center: [108.36726665494332, 22.815650637650638]
});
以上是转化中文的成功案例,有更好的方法也欢迎大家交流分享!
Vue2用esri-loader加载arcgis地图并转中文
2361

被折叠的 条评论
为什么被折叠?



