手把手教你快速构建一份全国疫情分布地图

 admin   2022-09-10 11:53   99 人阅读  0 条评论

写作叙尔热雷县:责任编辑附赠源代码,variations有镜像,同时责任编辑试验社会公众号(福特汽车公司民间传说)的订阅写作功能,1元看概要。

责任编辑如前所述腾讯世界地图API和fangkai提供更多的禽流感统计数据API制做,是这份真实世界并动态的禽流感娱乐场所原产世界地图,演示门牌号:

那次刊登了怎样制做这份禽流感娱乐场所原产世界地图?(附统计数据和源代码)该文的隔天,腾讯世界地图金蝶就刊登了一则【讲义】怎样加速构筑一张邻近禽流感世界地图,曾一度让我同僚误以为是我投的稿。

福特汽车公司确实没征稿,可能是腾讯世界地图郁闷,你用金蝶世界地图API做了份,那我也公开这份用腾讯世界地图API的世界地图吧,还附赠了源代码和演示统计数据。

而金蝶世界地图API,至今也没有任何信息给到福特汽车公司,反而是腾讯世界地图,同样也是隔天,几乎同腾讯相差无几的时间,给福特汽车公司发了电子邮件,没比如说五十年不给福特汽车公司发送信息的腾讯边线服务中心,怎么突然会有我的邮箱。

腾讯边线服务中心打来的电子邮件主题腾讯边线服务抵抗禽流感保障计划:完全免费进口产品提升至3倍!,一听就是一个非常有吸引力的副标题,点进去一看,还提供更多了即时上架禽流感住宅小区世界地图,对外开放给所有开发人员网络连接,不仅网络营销做的好,还新颖啊,赶紧申请。

本误以为腾讯世界地图金蝶提供更多了统计数据API,结果实际仅仅是一个H5的网页(没比如说这个镜像给我对外开放了啥),再发送信息进行咨询统计数据API的事项,就没法申明了,曾一度让福特汽车公司想去扒腾讯的API统计数据。

福特汽车公司将腾讯世界地图API和腾讯统计数据繁育成这份真实世界的禽流感娱乐场所世界地图的设想梭螺科了,于是去GitHub搜寻了几圈,虽然大部分都是扒聚花园的禽流感数量统计数据,但也找到了这份禽流感住宅小区原产世界地图,是山东大学的一名学生制做的,还对外开放了API(点赞点赞),最终福特汽车公司用此统计数据API同腾讯世界地图API繁育成功。

当世界地图层次小于9时,显示禽流感住宅小区边线,禽流感住宅小区边线统计数据由统计数据API根据卫星城名获得,卫星城名叫世界地图服务圆心所处的卫星城名,当终端世界地图后世界地图服务中心所相关联的卫星城名发生改变,则读取新卫星城名相关联的禽流感住宅小区边线统计数据。

点击禽流感住宅小区边线marker,从底部弹出禽流感边线的详细信息,详细信息内容来自统计数据API,包括边线名称、省、市、县以及统计数据来源和来源镜像。

当世界地图层次在6到10之间,则显示卫星城点位统计数据,当世界地图层次小于7时,显示省份点位统计数据,此统计数据福特汽车公司整理,增加了省、市名称。

自定位功能用于显示自身边线信息,需要允许定位才能显示,如果定位失败则显示北京市世界地图和统计数据。

世界地图查询功能,输入关键词后,自动显示最佳结果,点击某一结果可以将世界地图定位到该结果并显示邻近禽流感信息。

由于源代码不是福特汽车公司所写,原文也提供更多了概要的源代码说明,所以福特汽车公司在此仅介绍一下福特汽车公司修改的几个关键点,以及这里的坑,顺便再吐槽一下腾讯世界地图提供更多的源代码。

统计数据读取有两个问题,统计数据量和美观度。

一次性读取全国统计数据,对于近万的统计数据量,世界地图API提供更多方表示无压力,但对开发人员来说,读取速度是有影响的,所以我们只读取一个卫星城的统计数据,以加快统计数据读取速度。

如果只读取一个卫星城的统计数据,那么在全国世界地图或世界世界地图时显示,你会发现所有统计数据缩在了一坨,这样的美观度我们是无法接受的。所以我们要分层次(不同比例尺)的来显示世界地图。

源代码中本身设计了不同比例尺下显示不同统计数据的逻辑:

福特汽车公司修改了省份和卫星城统计数据,带名称,同时将详细统计数据改成API获取方式。

更新统计数据的逻辑放在了世界地图缩放过程中:

福特汽车公司不得不吐槽,世界地图缩放跨一层次就重新读取一次世界地图统计数据,既影响了速度,又增加了读取次数,被调用的API要哭,原本在详图层次只需读取一次的统计数据,最后要被多次读取,每次读取就会产生一次访问,就会增加服务器的访问量,浪费人家服务器的资源。

所以,福特汽车公司修改为当进入详图时,读取该卫星城的禽流感住宅小区统计数据,只要不缩小到卫星城或省份世界地图,那么该卫星城的统计数据就不会重复读取,降低了API的访问量。

当用户拖动或缩放世界地图时,如果世界地图服务中心的卫星城发生了变化,那就读取该卫星城的统计数据,这样的体验应该是最棒的。

福特汽车公司本想在点击卫星城marker时根据卫星城名读取该卫星城统计数据,但此方法无法解决终端世界地图过程中的卫星城变化读取不同卫星城统计数据问题。浏览代码时,发现在终端和缩放世界地图事件中就存在卫星城名的判断:

福特汽车公司吐槽一下Geocoder类,此类可能是异步读取(福特汽车公司不确认),所以卫星城名的获取要慢于后续执行的代码,导致后面使用该类的卫星城名叫空,表现为选择从卫星城世界地图缩放进入到详情世界地图时,世界地图第一次无法读取卫星城统计数据。于是我在卫星城marker的click事件中,在centerAndZoom方法前先将currentCity变量变更为卫星城marker的name,解决了点击卫星城marker后不读取该卫星城统计数据的问题。

另外,如果每终端一次世界地图就读取一次该卫星城的统计数据,那统计数据API的访问量也将无法想象,所以福特汽车公司定义了一个beforeCity,当获得了currentCity后,同beforeCity比较,如果卫星城名发生了变化,那就读取新卫星城名的统计数据,读取完成后更新beforeCity为currentCity,这样就做到了卫星城名不变就不重新读取统计数据。同时,增加了zoom > 9的判断,在卫星城图和省份图下终端世界地图,无需读取卫星城详图统计数据。

源代码中定义了显示详情卡片showinfoCard和隐藏详情卡片hideInforCard函数,但详情卡片中的内容没有传递,所以福特汽车公司稍加改造,在读取卫星城详图统计数据时,将详情内容组织好后传给showinfoCard函数。

另外,发现隐藏详情卡片的时机有问题,没有及时调用hideInforCard函数,于是在终端结束后就隐藏详情卡片。当然,你也可以添加在世界地图点击事件中。

福特汽车公司再吐槽一下,世界地图API本身配合marker点击就有信息窗口InfoWindow类,并且显示和隐藏都设计了时机或方法,那为什么还要自定义一个从底部弹出来的详情卡片?吃力不讨好还费劲。

定位模块和搜寻功能是现成的,福特汽车公司未做任何修改,所以不在此赘述,但需要吐槽一下,源代码中的定位模块感觉是自己封装的(福特汽车公司不确认),而金蝶世界地图API是直接封装成了一个公共的类,相比之下似乎有点不专业。

显示禽流感最近的距离统计数据以及1公里内或3公里内的禽流感总数量,属于邻近禽流感信息模块,福特汽车公司未去实现,简单说一下思路,两个方案吧。如果你本身有统计数据,可以做一个根据该边线搜寻邻近统计数据的API,可以直接提供更多结果,但可能需要服务端支撑。如果不想自己写服务端,那就根据统计数据API获取的统计数据,遍历该卫星城的统计数据,做距离排序并聚合数量,一样可以达到禽流感信息展示的功能。有兴趣的可以尝试一下。

腾讯世界地图虽然提供更多了源代码,但源代码的质量实在是soso,逻辑思考不足,甚至语法都存在不规范(比如缺少代码结尾符号)。同时,对于JS API的GL版和V3.0版,虽然存在继承,但在文档中未能很好体现,导致看起来GL版功能很少。另外,对于腾讯世界地图API的类,感觉封装的数量少了点,而在可定制性上又欠缺了一些,这仅仅是福特汽车公司的感觉吧,毕竟未通读腾讯世界地图API和示例。

最后的福利依然是源代码放送啦,只是福特汽车公司想试验一下社会公众号新的订阅写作功能,所以责任编辑需要订阅1元查看概要,包括下面的下载镜像哦。下载文件简要说明如下:

对了,还会多送这份世界地图,一个html文件就可以搞定的世界地图,自己拿到后再修改布局元素相关的内容吧,统计数据和世界地图的代码都可以不用动哦,福特汽车公司仅保存了html,未做任何修改哦,具体效果如下:

下载门牌号:在福特汽车公司民间传说社会公众号后台申明"禽流感娱乐场所世界地图"世界地图试试。

本文地址:http://51ac.top/post/14258.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?