如何为我的城镇创建基于地图的应用程序?
Posted
技术标签:
【中文标题】如何为我的城镇创建基于地图的应用程序?【英文标题】:How can I create a map-based app for my town? 【发布时间】:2011-04-10 23:51:25 【问题描述】:我想为我的城镇创建一个基于地图的网络应用程序。它很小,只有 5 x 5 英里,所以我想下载一张地图图像或平铺图像集以用于该站点。
对于这么小的区域,我想我可以缓存地图图像或图像。然后我就不需要依赖谷歌或其他地图服务,这对于我的小区域来说似乎有点过分了。我想按街道地址映射事件,所以我需要在地图图像上绘制地址。
我可以在某处下载这样的本地地图吗?我该如何构建这个应用程序?我花了大约一天时间阅读有关地图的东西,例如 Everyblock 和 OpenStreetMap,但我完全迷失了,因为这些网站并没有真正谈论这些工具的使用方式。必须有一套已知的工具可以用来构建它!如果有人能告诉我应该看哪些地图工具,那将有很大帮助。谢谢!
【问题讨论】:
实际上,依靠谷歌地图或其他类似的地图API可能是最好的方法。即使是最小的地图,您也会惊讶于细节程度。 谢谢,我可能不得不这样做。必应地图在绘制我的位置方面做得更好(这可能很时髦),所以我可以使用它而不是谷歌。但即使这似乎也不清楚,例如使用 Ruby。我镇上的街道也很稳定,所以我想我可以随着时间的推移建立我的地图和数据的缓存,这样我就不必担心节流和其他依赖问题。 我认为 openstreetmap 是要走的路。它为此类项目提供了大量的 API 和服务。 【参考方案1】:一种选择是使用OpenStreetMap。您可以通过各种方式使用数据(制作像 Google 地图那样使用的“易滑地图”、创建固定地图图像、从原始数据渲染您自己的地图图像......)。
为了更具体,您需要更详细地解释您需要什么。
如果您想按街道地址绘制内容,除了图像之外,您还需要地址信息。最简单的选择可能是使用现有的 Web 服务,例如 Nominatim (通过 HTTP 提供 API),或使用这些服务设置您自己的服务器。
当然,您也可以下载原始数据并从头开始设置所有内容,可能是在现有库的基础上构建。但这真的取决于你到底需要什么......
【讨论】:
谢谢,最后一部分有什么建议吗?我还没有找到一个好的阅读起点,这些网站有点假设你已经知道一切是什么。 @mapapp410:很难说,取决于你需要什么。基本上,您需要获取原始数据(通过 XAPI wiki.openstreetmap.org/wiki/Xapi 以 XML 格式下载),然后以某种方式呈现它。有各种可用的渲染器,或者自己制作:wiki.openstreetmap.org/wiki/Rendering。最后,在特定论坛上浏览(和发布)具体帮助:help.openstreetmap.org 谢谢。我认为这就是我所缺少的,简单描述它的工作原理以及从哪里开始。这是一条非常有帮助的评论,但我似乎对评论或您的回答都没有投票权。【参考方案2】:看看San Francisco Neighborhood Project...这些家伙解析 craigslist 中提到的社区名称,定位相关地址,然后根据名称出现的频率对地图进行颜色编码。 python source - 具有数据分类、仓储、地理定位和绘图功能 - 如果有帮助的话...
【讨论】:
谢谢。他们提到了我读过的老虎,但很困惑。我确实得到了一个 TIGER 下载,里面有一堆东西,比如 shapefile(更混乱)。他们说他们的地图文件来自 TIGER,但我找不到 TIGER 在哪里有可用的地图(他们网站上 census.gov 的链接说它已于 2010 年 5 月退役)。如果我不打算使用地图服务,获取地图是我需要做的事情之一。 :) TIGER 是一组数据,可帮助按人口划分对地理进行分类...有一个python script 可用于直接解析格式...或者您可以从Open PHI.com 下载SQL 格式 谢谢,我去看看。从他们的主页上看到这个? “该地图来自 TIGER/Line 美国人口普查数据。”这就是我要获得这样的地图的意思(是否有足够的数据来生成地图或者他们从哪里得到的?)。 @mapapp 只要您不为您的应用程序收费,您就可以免费使用谷歌地图...否则地图许可证可能超出您的预算(大约 1 万美元/年) .我将数据显示为KML on google maps,因为我所做的大部分工作都是为自己的研究进行数据挖掘。 KML 的好处是您使用 google 的渲染引擎进行地图、缩放和点放置……您只需在地图上提供纬度/经度/描述 @mapapp 我不确定您将如何使用这些数据,或者您所在城镇的数据有多精细......它可能有足够的细节,但可能值得您花时间看以上是关于如何为我的城镇创建基于地图的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何为我的 Google 地图应用使用具有 Google Play 服务依赖项的非 Nexus 5 模拟器
你如何为不基于文本的东西创建 UIMenuController?