您好我想知道如何创建谷歌地图这样的地图。完成这样一项任务的要求,比如从头开始为我的城市建立自己的地图。
答案 0 :(得分:6)
嗯,你想要卫星或街道地图吗?我想你想要街道地图,因为卫星地图非常明显(你需要卫星图像)。
与您的问题有关的一个主要因素是,您是只想要显示地图,还是打算使用路线规划和某种地图报告。
无论你需要什么,开始都是一样的。你需要一个地图服务器。首先,我可以向Postgre + Postgis推荐GeoServer。基本上,地图服务器的任务是创建地理空间数据的可视化表示。
让我澄清一下:在数据库(Postgre + Postgis)中存储地理数据,主要由行和多边形组成。如果你需要它们,这两种类型实际上都是点数组以及其他一些属性(速度限制,单向街道的方向标记......)。
地图服务器(最后选择哪个),获取该数据并将其转换为地图。要做到这一点,你还需要样式描述符,它基本上是地图的CSS。它解释了如何展示道路,铁路,森林,河流...... ....
设置完所有内容后,需要初始渲染。实际上没有必要,但是提供静态图像比每次从数据库渲染要快得多。并且渲染就是这样,为您的地图创建图像,为您需要的所有缩放级别。这可能是相当长的工作,你应该为此做好准备。
此时您决定,静态地图是否适合您,或者您是否希望将其用于更多内容(路线规划,交通报告......)。
如果静态地图足够您,您可以将生成的图像上传到网络服务器,遵循Leaflet所需的文件夹结构或您在网页上显示地图数据所选择的任何内容(如果这是您需要的)
如果您需要的不仅仅是静态地图,那么您需要激活地图服务器,因为它负责路由和渲染叠加层(您要在地图上叠加的数据)。基本上,您可以创建另一个包含交通信息的数据库,并使用地图服务器和该数据库渲染透明图像,这样您就可以将它们覆盖在静态地图上,并在地图上显示交通数据。
这一切都是对绘图如何运作的粗略和基本的解释。明显的第一个问题是从何处获取城市数据。然后它来过滤它,造型和创建地图。这是一项相当漫长而乏味的工作,我建议不要这样做,除非绝对必要(军事或类似的东西)。特别是因为OpenStreetMap是免费提供的,至少可以为你的地图提供一个跳跃点。
我希望我能够至少解释一下从这样的项目开始所需要的东西。
让我知道你的想法。