制作一份简单的网络地图(世博地图的配准和切割)

2023-11-12

其实我很早的时候就写过一篇“我的 2010世博地图1.0版发布”,但没有和大家做明确的说明和制作方法,今天就和大家一起来分享地图配准和地图切割并进行网络发布的问题,其实就是以世博为例制作一份简单的网络地图。网络地图是以Google Maps API为基础,在Google Maps上面叠加一份自制的世博地图,但有一点,这里的地图配准和切割很重要,不过使用本文介绍的工具后一切都将变的不困难了。

我们先去世博的网站找一点素材,在世博规划中可以下载到规划总平面图,如有兴趣也可以下载一份场馆规划图。不过你所下载的文件是PDF文件,需要导出成为JPG图片,方法是使用PDF编辑软件或者PDFtoJPG软件来完成,这里就不做介绍了,最终得到的就是一个世博规划的平面图。为了不让大家难做,我就直接提供我导出后的世博规划图,点击这里可以下载。(BTW:如果觉得世博规划图不够清晰,那我也没有办法,PDF中的图片本身就不清晰)

接下来配准地图,配准有很多的方法,比如用MapInfo来配准甚至ArcInfo来配准等,不过这些太复杂了,我们今天介绍一个简单的软件来进行配准,这就是GlobalMapper,一个非常牛的GIS软件,可以打开超级多的地图格式,并且可以另存为超级多的地图格式,我们就用它来进行简单的配准吧。不过万变不离其中,配准重要的就是根据点位来进行配准,就是找到一些关键点标定上坐标。我们使用GlobalMapper打开这个bmp的图片,然后就提示是否配准,我们当然需要配准啦,就点是,这个时候就进入配准界面了。配准所需的关键点就是图片中非常清晰可辨并且容易标定上坐标的位置,看了这份地图我们只能使用路口的方式进行配准了,因为其他信息都没有参考价值,我们选择了三个点位,并且找到了坐标,分别是:打浦路瞿溪路(N31.19832 E121.47227)、历城路昌里路(N31.17383 E121.49261)、临沂路南码头路(N31.19375 E121.51033),有了这三个位置信息后就可以配置了,如下图所示:

peizhun

赶紧点击OK吧,你的地图就配准完成啦。其实MapInfo里的配准也是同样的一个道理。

好了,接下来我们需要切割地图了,由于希望在切割地图的软件里变得更加简单一些,所以我们将刚刚在GlobalMapper中配准完成的地图另存为GeoTIFF格式,就是一个带有坐标信息的TIF图片。我们现在需要介绍一个杀手级的软件,让你的这个平面图直接输出到Google Maps里面,自动帮助你切割完成,真的是超牛,这个软件是什么呢,就是MapTiler,一个Map Tile Cutter软件,可以制作overlay到Google Maps或者Google Earth,不再多介绍这个超级牛的软件,需要了解到用户自行到网站上了解,我们只用简单的切割功能,以前介绍的GMapImageCutter工具和它相比真是小巫见大巫了。BTW,GlobalMapper软件其实也有输出Google maps tile的功能,但是不算太好,所以才用到这个专业的地图切割软件。打开软件,选择第一个Google Maps兼容格式:

MapTile1

下一步当然是添加我们刚刚的tif文件,如下图所示:

MapTile2

可以看到这个图片的坐标信息就自动进入了,而不需要你手动输入地理信息,如果你使用JPG或者BMP图片那当然是需要手动输入的,这也算是一个小小的技巧吧。然后就是选择坐标系啊、地图缩放的级别啊、版权信息啊、Google Maps API key啊什么的,然后就开始真的切割了,等待一会你就可以得到切割好了的地图了。

MapTile4

完成后大家赶紧来看看效果吧:

expomap

要知道这不是简单的仅仅是一个图片叠加在Google地图上面,你放大缩小加载的是不同的tile,而且和原有地图的叠加非常的好,因为我们配准了的嘛,但也必须要说MapTile这个软件的功能不可忽视。不过Google地图叠加tile的overlay的速度还是很慢的,除了本身图片加载速度可能有点慢以外,有可能GoogleMapsAPI就是如此,所以我们疯狂的延伸一下想法:将我的Google Maps API离线开发包中的Google地图替换成自己的地图,那么就真正的完全的离线并且是定制的地图了,期待看过此文的朋友能够完成这一壮举。

好了,最后给大家围观一下我的世博地图吧,毕竟在线的版本比本文的图片要实在:http://sharesh.cn/expo/

三月份到此结束,时间过的真是太快,这个月仅贡献此一篇博文,希望能够给大家带来帮助。谢谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作一份简单的网络地图(世博地图的配准和切割) 的相关文章

  • Alamofire 使用公共键和多个值传递参数?

    我需要在我的项目中执行此操作 如果我手动将字符串附加到 Alamofire 中的 URL 我可以轻松完成此操作 但我不希望这样做 我想要的参数为范围 object 参数的一个公共键中有多个值 我一直在做什么 public func find
  • GitHub v3 API - 如何在存储库中创建初始提交?

    我正在使用 v3 API 并设法列出存储库 树 分支 访问文件内容并创建 blob 树 提交 我现在正在尝试创建一个新的存储库 并设法使用 POST user repos 来完成它 但是当我尝试在这个新存储库中创建 blob trees c
  • 学院/大学数据 API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试构建一个应用程序 允许用户查找特定大学并查看有关该大学的数据 录取率 SAT 分数 规模等 但
  • 如何使用 Sound Cloud API 按标签搜索特定用户的曲目?

    我想通过仅与我的用户名 即皇家歌剧院 相关的标签搜索曲目 例如 http api soundcloud com users royaloperahouse tracks client id 238947HSGDHSDG tags eric
  • .NET Web API - 添加日志记录

    我正在寻找有关处理 API 日志记录的最佳方法的帮助 我想将所有请求和响应记录到 sql 或文本文件 如果这是最好的方法 目前我已经在 SQL Server 的日志表中插入一行 我使用名为 LogAction 的静态方法来执行此操作 并在
  • 如何在S3中存储数据并允许用户使用rails API / iOS客户端以安全的方式访问?

    我是编写 Rails 和 API 的新手 我需要一些有关 S3 存储解决方案的帮助 这是我的问题 我正在为 iOS 应用程序编写一个 API 用户在 iOS 上使用 Facebook API 登录 服务器根据 Facebook 向 iOS
  • 授予 Rails 应用 API 访问权限的最佳身份验证方法

    我想为我的网络应用程序提供经过身份验证的 API 访问 此类服务的消费者通常是其他网站 服务 验证这些用户身份的最佳方法是什么 OAuth openID http 身份验证 正如我们的工作一样 哪个最好 的答案是这样的 是 这取决于 HTT
  • 在react.js中调用API渲染数组图片

    我有 API 其中包括 pictures http storage web source images 2016 10 28 edac054f88fd16aee7bc144545fea4b2 jpg http storage web sou
  • 如何使用 Twitter Api 在单个请求中获取 20 多个列表成员?

    我想让超过 20 个用户在单个请求中使用 twitter api 有什么参数可以指定吗 我正在使用这个APIhttp api twitter com 1 Barelyme Politics members xml cursor 1 http
  • 我可以查看当前登录的 Twitter 用户吗?

    他们没有通过我的网站进行 OAuth 验证 但在该浏览器上登录到 Twitter 有什么办法让我知道他们的 Twitter 用户名吗 饼干 什么 除非某些东西非常糟糕或者 Twitter 明确提供了用于此目的的 API 否则不会 至少不是通
  • 如何使用php api检查电子邮件或手机paypal帐户状态?

    如何使用 php api 检查电子邮件或手机 Paypal 帐户状态 好的 如果我想汇款到此电子邮件贝宝 email protected cdn cgi l email protection 或手机 1234567890 汇款前 我可以检查
  • XML-RPC 与 REST

    我打算在这里构建一个小型服务器 并想为其创建一个 API 我正在决定什么是更好的并且已经排除了SOAP因为在我看来那件事是一团糟 我只剩下REST and XML RPC 我真的很喜欢XML RPC 它实现起来非常简单 并且足够常规 所有客
  • Yammer API 限制

    Yammer Rest api 文档表示 每个应用程序每个用户在 10 秒内最多可以发出 10 个请求 问题 什么是user这里 是为当前经过身份验证的 yammer 用户发出请求的 IP 地址还是承载令牌 如果我们所有的用户都使用相同的外
  • 415 不支持的媒体类型; Angular2 到 API

    我是 Angular 2 的新手 我面临着一个无法找到解决方案的问题 当我尝试从 Angular 2 发布到 API 时 我得到 415 不支持的媒体类型 角度2代码 onSubmit value any console log value
  • 如何在 Django Rest 框架中编写“删除”操作的测试

    我正在为 Django Rest Framework API 编写测试 我一直在测试 删除 我对 创建 的测试工作正常 这是我的测试代码 import json from django urls import reverse from re
  • 警告:访问循环依赖内模块导出的不存在属性“MongoError”

    我正在使用节点执行 API 并使用 Mongoose 当我给一个yarn dev启动我的 Nodemon Mongo 出现错误 我不知道如何解决这个问题 有人有什么想法吗 我使用的是 MongoDB Atlas 数据库 就在出现以下错误之后
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 端点按资源 swagger 注释分组?

    我正在使用 Spring 进行 REST API 开发 我有一些 API 其中有很多端点 当我打开 swagger ui 时 它看起来很拥挤 我刚刚读过this https swagger io docs specification gro
  • JW Player javaScript API 不工作

    我使用 jwplayer version 5 10 2295 和浏览器 chrome 25 My code jwplayer container setup file path width 300px height 100px autost
  • SSDT SQL Server 数据库项目中用于架构比较的命令行/API?

    在 Visual Studio 2012 中 我们有Schema Compare http msdn microsoft com en us library hh272690 28v vs 103 29 aspx in SSDT http

随机推荐

  • C#实现Omron欧姆龙PLC的Fins Tcp协议[转]

    转自 https blog csdn net yxt99 article details 79984153 commentBox 感谢作者 yxt99 欧姆龙PLC的FINS协议解释 UDP访问方式 读取示例 读取DM区20个字 从DM10
  • 解决openwrt opkg内核版本不匹配问题

    假设安装软件时提示需要5 4 65版本的内核 然而 系统的内核时5 4 52 root Openwrt uname a Linux Openwrt 5 4 52 0 SMP Thu Jul 23 12 16 45 2020 x86 64 O
  • opengl-shader学习笔记:varying变量

    varying变量可以在Vertex Shader和Fragment Shader之间传递数据 渲染管线中应用程序调用openglAPI 把顶点数据传给Vertex Shader Vertex Shader处理完后输出数据给Fragment
  • javaWeb基础二:Servlet(java前后端交互的技术)

    2 Servlet 2 1 定义 Servlet是sun公司提供的一门用于开发动态web资源的技术 可以实现和客户端的交互 接收客户端请求和给客户端返回响应 Sun公司在其API中提供了一个servlet接口 用户若想开发一个动态web资源
  • 获取id_rsa.pub和id_rsa.pub的作用

    SSH SSH为Secure Shell的缩写 由IETF的网络小组 Network Working Group 所制定 SSH为建立在应用层基础上的安全协议 SSH是目前较可靠 专为远程登录会话和其他网络服务提供安全性的协议 利用SSH协
  • Ubuntu 20.04 搭建NFS server

    文章目录 一 测试环境 二 安装 NFS server 一 测试环境 Ubuntu 20 04 64位 二 安装 NFS server 执行以下命令 sudo apt get install nfs kernel server 出现报错 从
  • C Primer Plus 第一章编程练习

    第一章 1 13编程练习 题 目 你刚被MacroMuscle有限公司聘用 该公司准备进入欧洲市场 需要一个把英尺单位转换为厘米单位 1英寸 2 54厘米 的 程序 该程序要提醒用户输入英寸值 你的任务是定义程序 目标和设计程序 编程过程的
  • 杂项(每天看到的感兴趣的)

    Tomcat最大承受的并发数 Tomcat的最大并发数取决于多个因素 包括硬件资源 如CPU 内存等 网络带宽 应用程序性能以及Tomcat本身的配置 在默认情况下 Tomcat可以处理的最大并发连接数为200 然而 在实际生产环境中 这个
  • 华为OD机试(JAVA)真题 -- 输出最大差

    import java util Arrays import java util Scanner 判断一组不等式是否满足约束并输出最大差 给定一组不等式 判断是否成立并输出不等式的最大差 输出浮点数的整数部分 要求 1 不等式系数为doub
  • Python简单制作GUI界面

    不管你是 Mac OS 系统 还是 Windows 系统 它都可以生成相对应的操作界面 这就是所谓的跨平台 其原理就是我们使用 Python代码去调用 Tkinter Tkinter 已经封装了访问TK的接口 这个接口是一个图形库 支持多跨
  • vscode写PHP代码双击无法复制变量$ 解决方法

    第一步 文件 gt 首选项 gt 设置 第二步 设置里面搜索 word separators 然后用此处的正则替换红框处的正则配置 lt gt
  • 实训三:文件系统命令及vi编辑

    实训三 文件系统命令及vi编辑 2017年 11 月 1 日 今日公布 vim 编辑又三种模型 一般模式 命令模式 编辑模式 练习1 Linux文件系统管理命令 分别用下列命令创建两个用户 useradd 用户名 创建一个用户 passwd
  • 毕业设计 基于Arduino工业温度计

    0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求 为了大家能够顺利以及最少的精力通过毕设 学长分享优质毕业设计项
  • 第十四届蓝桥杯校内模拟赛(第二期)题解分享

    文章目录 填空题 最小数 数天数 非常特殊的数 最大值路径 拆分质数个数 编程题 文件拷贝 去除重复单词 变成回文字符串 找X图案 交换的代价 本篇文章中的题解是我在比赛中的思路或者所写的代码 总结出的一篇相对来说比较清晰的个人题解 希望要
  • python抓网页数据(python爬取网站数据)

    标题 Python神器 抓取网页数据轻松搞定 Python语言作为一种强大的编程工具 不仅在数据分析 人工智能等领域大放异彩 而且在网络爬虫方面也有着出色的表现 利用Python抓取网页数据已成为许多程序员和研究人员的首选方法 下面就让我们
  • 几种常见的HTML分割线

    分享一下我老师大神的人工智能教程 零基础 通俗易懂 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 造福人民 实现我们中华民族伟大复兴 一 基础代码 1 hr 2 hr align cent
  • git使用之上传项目文件到本地仓库

    git使用方式 一 初始化基本信息 1 设置用户名 git config global user name 用户名 例如 git config global user name gumeimen 2 设置邮箱 git config glob
  • c++模板实参推断

    模板实参推断 类型转换与模板类型参数 template
  • this 和 super的区别

    1 this的用法 this 关键字 1 作用范围 本类 不是实例化的对象 而是正在写的对象 2 作用效果 1 表示当前对象 简单来说就是来区分哪个是形参那个是成员变量 例 public void show String name this
  • 制作一份简单的网络地图(世博地图的配准和切割)

    其实我很早的时候就写过一篇 我的 2010世博地图1 0版发布 但没有和大家做明确的说明和制作方法 今天就和大家一起来分享地图配准和地图切割并进行网络发布的问题 其实就是以世博为例制作一份简单的网络地图 网络地图是以Google Maps