第一部分

很久以前,我住在村子里,因为村子小,所以对村子的一草一木都很熟悉,在熟悉的环境里就很有安全感。

后来我到了大城市,却发现城市太大了,一辈子都熟悉不完。

这个城市的绝大部分地方我都没有去过,就算去了我也不知道这些高楼和院墙里到底是干嘛的,这让我很没安全感。

后来,总而言之,我做了一个简单的程序,输入一个地图边界,就能把一些也许重要的区域在地图上标注出来,像下面这样(图片点击放大):

上面这个图标注的是南京市秦淮区,其中红字部分是我手动加上去的,其它部分是程序生成的。

虽然比较简陋,但上图还是提供了一些值得关注的信息:

  1. 南京新街口有很多品牌服装店
  2. 夫子庙和秦淮河是两个主要的旅游景点
  3. 上述两个区域附近有较多的餐饮饭馆
  4. 南京航空航天大学在此区域

然后我又输入了北京市-海淀区的边界,这个区的面积更大,然后得到了如下标注图(图片点击放大)

稍微观察后发现,海淀区标注为高等院校的浅黄色区域比较多,然后我放大了高校较密集的区域,用了一些时间把高校的名字用红色字体手动加上(图片点击放大):

以上,就是这个程序的全部功能:输入一个地理边界,得到一个标注图。

第二部分

然后就是这个简单的效果是怎么实现的~

  1. 想办法得到全国的POI数据
  2. 输入一个地理边界,用Python库h3将该边界内的区域填充为无数个紧邻的六边形
  3. 计算每个六边形内各种POI的种类对应的数量
  4. 把每个六边形看成一篇内容是POI类型的文章,用tf-idf方法获得每个六边形的主题
  5. 只显示主题相同且相邻个数 >= 3的六边形
  6. 将所有六边形和主题用folium库在地图上绘制出来

第三部分

  • 如果有小伙伴对其它城市区域感兴趣,请在本周(03月21日前)留言 "省-城市-行政区" 的形式,我会尽量生成对应的html文件并统一放在 百度网盘:  提取码: sbq4
  • 显示html文件的内容需要ke学上网(因为用的奇怪的绘图库folium。。。)
  • 因为生成标注图耗时较长,比如生成海淀区的标注图大概要10分钟,所以留言时请尽量精确到区,如果时间足够留言多个区我也会尽量处理
  • POI数据比较难获得,所以不打算公开,请见谅
  • 标注六边形类型的蓝字可以点击,点击会出来对应的高德坐标,可在 高德地图坐标拾取中输入坐标进一步查询
  • 部分行政区无法生成标注图,因为其对应的行政区边界很不规则

一种借助POI粗略的标注城市也许重要的区域的方法的更多相关文章

  1. 10、借助POI实现Java生成并打印excel报表(1)

    10.1.了解 Apache POI 实际开发中,用到最多的是把数据库中数据导出生成报表,尤其是在生产管理或者财务系统中用的非常普遍.生成报表格式一般是EXCEL或者PDF .利用Apache  PO ...

  2. 【九天教您南方cass 9.1】 07 绘制与标注圆曲线和细部点的方法

    同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取测量空间中. [点击索取cass教程]5元立得 (给客服说暗号:“ ...

  3. QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)

    背景: QT在用户关闭窗口(直接点击"X"键)时,程序一般都需要做一些善后的事情,就我现在的程序来说,既关闭USB.如何实现? 正文: 首先,在对应窗体的".h" ...

  4. 微信小程序城市定位(借助百度地图API判断城市)

    概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...

  5. 11、借助POI实现Java生成并打印excel报表(2)

    11.POI打印功能 11.1.常用模块形式: HSSFPrintSetup printSetup = sheet.getPrintSetup(); printSetup.setVResolution ...

  6. Java 借助poi操作PDF工具类

    ​ 一直以来说写一个关于Java操作PDF的工具类,也没有时间去写,今天抽空写一个简单的工具类,拥有PDF中 换行,字体大小,字体设置,字体颜色,首行缩进,居中,居左,居右,增加新一页等功能,如果需要 ...

  7. 【POI】对于POI无法处理超大xls等文件,官方解决方法【已解决】【多线程提升速率待定】

    本次使用POI处理xlsx文件,莫名的遇到了一个无法逾越的问题. 总共71个xlsx文件,单个文件最大达到50M以上,71个xls文件摆在那里就有3-4G的大小. 在起始处理的时候,发现原本适用于正常 ...

  8. 在Sharepoint2010中一种自定义调查列表的不允许再次答复提示的处理方法!

    在Sharepoint中默认创建的调查列表系统只允许答复一次,再次答复将报错误信息,这对最终用户而言是非常不友好的体验,当然你也可以在调查设置中的常规设置中设置允许多次答复,这样就会有错误提示信息,但 ...

  9. [原创]一种基于Python爬虫和Lucene检索的垂直搜索引擎的实现方法介绍

    声明:本文首发在博客园晨星落羽,Shulin_Cao和lvmememe首页,转载请注明出处. 前言 2016.5到2017.5,我们三人(lvmememe,Shulin_Cao,晨星落羽)共同完成了一 ...

随机推荐

  1. 一个C++源文件从文本到可执行文件经历的过程

    一个C++源文件从文本到可执行文件经历的过程 以Hello World为例进行说明 首先我们编写一个cpp源程序 test.cpp #include <iostream> using na ...

  2. docker镜像拉取、运行、删除

    1.拉取hello-world镜像并运行 docker pull hello-world 拉取hello-world镜像Using default tag: latestlatest: Pulling ...

  3. React Transforming Elements All In One

    React Transforming Elements All In One https://reactjs.org/docs/react-api.html#transforming-elements ...

  4. what's the difference amount of pdf, epub, and mobi format

    what's the difference amount of pdf, epub, and Mobi format What is the difference between pdf, epub ...

  5. Next.js & SSR & CSR & SG

    Next.js & SSR & CSR & SG getStaticPaths, getStaticProps, getServerSideProps getStaticPro ...

  6. dotnet core TargetFramework 解析顺序测试

    dotnet core TargetFramework 解析顺序测试 Intro 现在 dotnet 的 TargetFramework 越来越多,抛开 .NET Framework 不谈,如果一个类 ...

  7. 整合mybatis plus

    第一步:导入jar包 导入页面模板引擎,这里我们用的是freemarker <!--mp--> <dependency> <groupId>com.baomidou ...

  8. tomcat运行多个项目同一个端口与不同端口的设置

    一.首先打包项目 这里采用eclipse开发工具,选中项目右击,点击Export进入 选择web下的 WAR file ,点击next 在这里可能有坑,新装的eclipse没有web文件夹 此时需要下 ...

  9. Django-用户权限,用户角色使用指南

    RBAC(Role-Based Access Control,基于角色的访问控制)就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用户 ...

  10. msfconsole 常用命令记录

    Metasploit是一款开源的渗透测试框架,它现在还在逐步发展中,下面介绍的一些功能和命令,可能会在未来失效. Metasploit框架提供了多种不同方式的使用接口: msfgui msfconso ...