偷得浮生半日闲
碰到一个奇怪的问题,通过localtime生成本地日期时间打日志,结果日志会出现非北京时间,好奇去查了一个,结果发现此函数是非线程安全函数,原来代码如下: int32_t utc2datetime(uint32_t utctime, SVC_TIME* out_pTime) { time_t rawtime; struct tm * p; rawtime = utctime; p = localtime(&rawtime); out_pTime->unYear = (uint32_t)(1900 + p->tm_year); out_pTime->unMonth = (uint16_t)(1 + p->tm_mon); out_pTime->unDay = (uint16_t)p->tm_mday; out_pTime->unHour = (uint16_t)p->tm_hour; out_pTime->unMinute = (uint16_t)p->tm_min; out_pTime->un
浏览器定位是可以使用javascript直接获取当前你的网络所在的位置信息,主要方法为 navigator.geolocation.getCurrentPosition(function(position){});其中`position`信息中包括以下内容:经度 : position.coords.longitude纬度 : position.coords.latitude精度 : position.coords.accuracy高程 : position.coords.altitude高程精度 : position.coords.altitudeAcuracy方向 : position.coords.heading速度 : position.coords.speed时间戳 : position.timestamp
使用ThinkPHP6开发接口时会遇到前置过滤或判断,我们可以使用中间件功能。以下是单应用模式示例:创建中间件第1种方式,命令行方式: php think make:middleware Filter 第2种方式,手动在`app`目录下创建`middleware`文件夹,再创建中间件类: <?php namespace app\middleware; class Filter { public function handle($request, \Closure $next, $name) { //to do return $next($request); } }
随着Web技术的不断发展,WebMap的功能和应用也越来越丰富和多样化,地图不再仅仅是2D的显示,更多需要3D的显示效果和交互。这个时候就需要地图数据不能以图片方式出现了。 上一篇文章中提到了地图的瓦片,一般瓦片都是图片格式,但是在3D Web地图下图片格式就无法更好的显示3D效果,这就出现在矢量瓦片(Vector Tiles)格式。与传统的栅格瓦片(Raster Tiles)相比,矢量瓦片以矢量数据形式存储和传输地理信息,具有许多优势和应用潜力。矢量瓦片的特点和优势: 数据灵活性:矢量瓦片存储的是矢量数据,例如点、线、面等地理要素,而不是预先渲染的像素图像。这意味着矢量瓦片可以根据需要进行动态样式化、交互和分析,提供更灵活的地图呈现方式。 高清晰度和可伸缩性:矢量瓦片具有无限的分辨率,可以实现高清晰度的地图显示。无论是在高分辨率屏幕上还是缩放到细节层级,矢量瓦片都能提供清晰、锐利的地图效果。 网络传输效率:相比栅格瓦片,矢量瓦片的数据量更小,因为它们只存储地理要素的几何信息和属性,而不是
全球的电子地图要展示在用户的浏览器上,那体量就太大了,在大比例尺下,可能全球用一张图片就可以看到,在小比例尺下,用一张图片就无法显示了,在web地图之前都是软件如Arcgis等来显示地图的。互联网的出现就出现了web地图的解决方案:通过把地图生成图片的方式来在web端显示地图图片。 Google地图是最早使用WebMercator标准来实现web地图的,也让WebMercator成为了web地图的标准了,WebMercator只是把地球投影成一个固定米值大小的范围,工程师把固定的范围成对应到不同级别的固定像素的图片上,这样成了不同级别的地图图片。
上一篇说了下坐标系,说的都是地理坐标系,但是地球不管是球体还是椭球体,电子地图还是需要一个平面来展示,所以就会需要一个投影坐标系。有投影坐标系那就有投影,简单了解下地图投影(Map Projection)。 投影是把地球表面的任意点,利用一定数学法则,转换到地图平面上的理论和方法。简单的来说就是把球面的每个点与平面的每个点建立一个数学转换方法。
前面简单介绍了下什么是地图,我们主要说说电子地图,而对于电子地图来说,还是先了解什么是坐标系。坐标系,是理科常用辅助方法,常见有直线坐标系,平面直角坐标系。为了说明质点的位置、运动的快慢、方向等,必须选取其坐标系。在参照系中,为确定空间一点的位置,按规定方法选取的有次序的一组数据,这就叫做“坐标”。在某一问题中规定坐标的方法,就是该问题所用的坐标系。 而地图中用到的坐标系一般是地理坐标系统,也叫经纬度坐标系。地理坐标系(Geographic Coordinate System),是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。 现在电子地图中用到地理坐标一般有以下几种:
最近一个js项目中使用了for(let i in arr) {} 循环,for in的好处就是被遍历的对象可以是数组,可以是对象,就算是null和undefined都没有问题,不会报错,所以被大量使用,而且当一个无序的数组中更是不会遍历空数据。如下:let a = []; a[5] = 5; console.log(a); // [empty × 5, 5] for (let i in a) { console.log(i); } // 5可是当客户在使用时使用了一个第三方插件,插件中使用了Array.prototype自定义方法,结果项目开始报错,最后发现问题出现在for in的时候会遍历枚举对象属性,包括prototype中的enumerable为true的对象属性,所以就出现问题了。
地图是按照一定的法则,有选择地以二维或多维形式与手段在平面或球面上表示地球(或其它星球)若干现象的图形或图像,它具有严格的数学基础、符号系统、文字注记,并能用地图概括原则,科学地反映出自然和社会经济现象的分布特征及其相互关系。 以上是地图的介绍和解释。当然我要说的地图不是指泛义上的定义,我要说的地图指电子地图-数字地图经可视化处理在屏幕上显示出来的地图。 电子地图的特点有如下6个: 1.可以快速存取显示。 2.可以实现动画。 3.可以将地图要素分层显示。
演示页面:https://xiaoa.me/p/windsformvalid/每次表单每个页面提交都要自己写脚本验证信息,老是复制粘贴的很烦,改起来也很麻烦,网上也有大把的表单验证插件,但是感觉用起来不灵活,这就出现了windsformvalid.
小A