下载 ArcGIS Javascript 引用的字体 pbf 文件,并离线部署
时间:2020-05-09
本文章向大家介绍下载 ArcGIS Javascript 引用的字体 pbf 文件,并离线部署,主要包括下载 ArcGIS Javascript 引用的字体 pbf 文件,并离线部署使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在使用 ArcGIS JavaScript 进行开发的时候,虽然已经把 引用的 js 和 css 文件进行了离线部署,
但是有个问题,在调用的字体文件时,也就是调用 pbf 文件时,调用的仍然是在线的,而且速度很慢,
整个页面加载的时间和加载 pbf 文件的时间差不多了,实在无法忍受,准备下载离线部署,网上搜了几个
发现要么不支持中文,要么就是要分特别高。只能自己动手写个程序下载了。
代码很简单,是 C# 的。
using System; using System.IO; using System.Net; namespace pbfDownload { class Program { static void Main(string[] args) { var regularUrl = "https://static.arcgis.com/fonts/arial-unicode-ms-regular/"; var boldUrl = "https://static.arcgis.com/fonts/arial-unicode-ms-bold/"; var regularFolder = @"D:\Fonts\regularFolder\"; //目录要先手动建好,这里主要是下载,就不循环路径自动建文件夹了。 var boldFolder = @"D:\Fonts\boldFolder\"; var NetURL = new string[2] { boldUrl, regularUrl }; var downFolder = new string[2] {boldFolder,regularFolder}; for (int u = 0; u < 2; u++) { var downurl = NetURL[u]; var downFold = downFolder[u]; for (int i = 0; i < 257; i++) { double si = i * 256; double ei = (i + 1) * 256 - 1; var fileName = si.ToString() + "-" + ei.ToString() + ".pbf"; var fileUrl = downurl + fileName; var fileDown = downFold + fileName; HttpDownloadFile(fileUrl, fileDown); } } } /// <summary> /// Http下载文件 /// </summary> public static void HttpDownloadFile(string url, string path) { try { // 设置参数 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; //发送请求并获取相应回应数据 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 Stream responseStream = response.GetResponseStream(); //创建本地文件写入流 Stream stream = new FileStream(path, FileMode.Create); byte[] bArr = new byte[1024]; int size = responseStream.Read(bArr, 0, (int)bArr.Length); while (size > 0) { stream.Write(bArr, 0, size); size = responseStream.Read(bArr, 0, (int)bArr.Length); } request.Abort(); response.Close(); responseStream.Close(); stream.Close(); Console.WriteLine("File:" + path); } catch(Exception ex) { Console.WriteLine("File:" + path); Console.WriteLine("Error:"+ ex.Message); } //return path; } } }
原文地址:https://www.cnblogs.com/googlegis/p/12850443.html
- hdu 3948 Portal (kusral+离线)
- linuxmint下pycharm创建桌面快捷方式
- hdu 1811 Rank of Tetris (并查集+拓扑排序)
- Pycharm常用技巧
- hdu 1598 find the most comfortable road(枚举+卡鲁斯卡尔最小生成树)
- 查询IP地址归属详情
- oracle commit详解
- hdu 4315 Climbing the Hill(阶梯博弈转nim博弈)
- iftop实时网络流量监控工具的安装使用
- hdu 3908 Triple(组合计数、容斥原理)
- hdu 4034 Graph (floyd的深入理解)
- hdu 4033Regular Polygon(二分+余弦定理)
- Debian8配置SSH允许root登陆
- hdu 4405Aeroplane chess(概率DP)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法