之前在: https://www.v2ex.com/t/341025 中扫了扫盲,研究了许久后,下面几个方案都搞通了:
- 用百度或者高德 map api
- 爬来百度或高德或谷歌的瓦片图扔到服务器上再用 openlayers 的 xyz 方法显示
- 淘宝上买 shp 格式地图资源,用 geoserver+openlayers 显示
在线 api 是最方便的,但存在以下问题:
- 有场景是针对某个建筑物进行管理,需要放大缩小至该建筑物占满屏幕大部分,在线 api 的放缩级别不够
- 同上一条,在线 api 的楼宇细节不够(我们的目标地点是某八线县城,百度或高德上的建筑信息都很不全)
- 在线 api 提供的定制型不够,比如想细致的调整配色,或者显示一条闪烁的箭头之类的,都没找到相应的方法
- 领导的意思是要把地图做成系统的亮点,因此要漂亮、细致。参考 E 都市,风格不要 3d 的,但是漂亮程度要接近。
所以后面想研究的方向是自建地图,有下面几个想法:
爬百度或者高德的地图资源,用 openlayers 显示,再叠加网上购买的 shp
存在的问题是,两个地图的坐标叠不上,差十几米的样子。想请教大家,能否解决,解决的话,应该 1、调整瓦片图 2、QGIS 或人肉改 shp 3、在 openlayers 中通过某个方法调整两个图层的坐标差?
前两种方法都感觉太笨了,理论上第三种最靠谱,但翻了翻 openlayers 的文档,愣是没找到。
自己画地图
网上买 shp 即便是能叠加上,但还是比较难看,所以在考虑是否自己画地图的方案更靠谱。
我们要管理的范围,第一批大概不超过 100 平方公里,居民区不超过 100 个,我们手里有所有建筑的 cad 图。
如果我去找那种做小区平面设计图的人,把 cad 图给他们,让他们按照我们要求的风格画出图,然后写个程序切出瓦片图(对一个端点或两个端点的坐标就能保证矩形的所有点坐标都是对的?)。之后架一个 GIS 数据库,人肉把每个建筑物的坐标点量出来,存到数据库里(按照 100 个小区,每个小区 100 个建筑物算,大概是个 100~200 人天的体力活),这样建筑物的信息也都有了,鼠标指向后的高亮效果也实现了,基本上满足了我们的所有要求。
之后的需求,无非是根据 GPS 坐标在图上标记一些点位,如果地图都是我们自己画的话,和 GPS 坐标的偏移问题应该也能很简单的解决吧。
这个方案靠谱吗?
如果不完全靠谱的话,是否可以通过底图+shp+重点区域用以上方法绘制的结合方法?如果可以的话,要解决 1、坐标偏移问题、2、底图用谁的 3、shp 是否能简单的编辑,比如人肉画一片区域出来
写得有点乱,主要是对 GIS 还没有系统性了解,都是查到的各种野路子凑上去。