做一个学校或者厂区或者社区的业务系统,需要 GIS 功能,显示地图,在地图上标点位,做回调事件。
类似于百度地图提供的 api 就符合要求,但单位内部的地图资源肯定在百度上采集不到。另外就是,地图的样式需要分为平面和立体两种,平面的就类似于百度地图,立体的可能类似于: http://sh.edushi.com/。
现在不知道从哪里下手。从 GIS 理论开始学起的话,成本肯定过高了,再者也用不到这么高深的理论知识。感觉上,应该有下面几方面的问题要解决:
现有技术都是基于 Java 的,后面的技术方案最好也是 Java 这一套。以 Java GIS 为关键字搜了一些材料,但感觉不太得法,也不知道这条路可行不可行。
请教大家应该走一个什么样的路线才能解决这个问题
1
carlhan 2016-06-11 23:59:02 +08:00 via Android
|
2
qvvo 2016-06-12 01:48:33 +08:00 1
招个学 java 的从头学 GIS 不如招个学 GIS 的,
这个地理信息系统本身就是个本科专业, 地图引擎厂商有美国的 ESRI ,产品主要是 ArcGIS 系列, 国产的主要就是 SuperMap 了,我不太了解 SuperMap 的产品 地图资源可以用 ArcGIS 的桌面软件 ArcMap 来自己绘制了,格式一般是 shp 开源的找找 OSGeo 的软件包,也能做地图编辑发布切图一条龙,大概有 Grass, QuantumGIS , MapServer 等等 但难度估计比较大,我是没玩转。 推荐用加载瓦片的方式来做, 把自定义地图切成瓦片放到本地或服务器。 加载地图,分层显示加个点之类的, 用 openlayers 或者其他的 js 库也能搞定了应该。 有个比较牛叉的国人做的开源工具 geopbs 可以参考下: https://geopbs.codeplex.com/ |
3
julor 2016-06-12 07:42:57 +08:00 via Android 1
开源的一套完全满足你的需求。
数据库用 postges+postgis 服务端用 geoserver 或者 mapserver 数据处理用 qgis web 端用 openlayers3 或者 leaflet |
4
murmur 2016-06-12 07:56:51 +08:00
跟你说 你做应用 gis 那部份完全没压力 最大的问题在处理图纸上 怎么把图纸做的漂亮还清晰
openlayers 的难度不会比 jquery 高多少 但是处理瓦片做瓦片服务器那块才是难点 |
5
techme 2016-06-12 09:19:49 +08:00 1
github.com/Project-OSRM 这个好像可以
|
6
cdxem713 2016-06-12 09:21:27 +08:00
不知道你是要做内网还是外网的,内网的话没地图资源估计自己搞不定,外网直接用高德或者百度的 JS 开发包做二次开发就好了。
技术上 JAVA 能做的主要都是后端接口开发,如果你不考虑自己做地图渲染,那后端估计没啥可做的,有的只有地标点的存储和同步吧,前端还是得靠 JS 。 |
7
cdxem713 2016-06-12 09:22:22 +08:00
如果没有很复杂的定制需求的话,没有必要用 leaflet 或者 openlayer 这些库
|
8
Neveroldmilk 2016-06-12 09:26:55 +08:00
免费开源的 C/S 开发套件是 Geotools+PostGIS 。
|
9
nonesuccess OP @murmur 这块的难点是在开发上,还是在画图上?应该往哪个方向去努力解决呢?
|
10
swim2sun 2016-06-12 09:41:44 +08:00
根据楼主的需求, geoserver + openlayers 就可以搞定了。
首先,地图资源可以使用 QGIS 画,也可以请专门的数据公司画。平面还比较好搞,立体的可以使用 2.5D 的,需要先用 3DSMAX 作出立体图,再投影成 2.5D 。 数据可以导入到 geoserver ,前端 openlayers 访问 geoserver 服务器展示数据。 这是开源的解决方案,也可以用 ArcGIS 系列 |
11
swim2sun 2016-06-12 09:43:26 +08:00
@nonesuccess GIS 大概 80%的时间得花在数据上
|
12
Neveroldmilk 2016-06-12 09:52:48 +08:00
说 ArcGIS 解决方案的,最好了解一下 Esri 的报价,基本上都吓跑了。
|
13
murmur 2016-06-12 09:58:37 +08:00
@nonesuccess 当然是制作地图的 如果是小区域而且是自己标点可以用直角坐标系代替真实的世界坐标 误差也不会很大 如果是真实采集的数据这一部分没地理相关知识真搞不定
|
14
nonesuccess OP @murmur 意思就是说,我把前后端的技术方案都搭建好了,然后给个任务说把北京昌平区的地图画出来,这事就必须的 GIS 专业的人才能搞?
|
15
Neveroldmilk 2016-06-12 10:32:23 +08:00
不可能绕过坐标转换的,否则你以后所有的坐标修改和标注都要自己写代码转换,并且你的坐标系和世界坐标系也对不上。
|
16
nonesuccess OP |
17
nonesuccess OP @Neveroldmilk 那如果我给一个厂区,或者方圆几平方公里的居民区建模,就不需要跟真实世界的坐标系对应了吧?
就是说我自己建立一个直角坐标系,所有的坐标修改和标注都用我这套坐标系,也就不存在写代码转换的问题了? |
18
murmur 2016-06-12 10:37:35 +08:00
@nonesuccess 我认为是,而且坐标系也最好用真实坐标,这样你去踩点也容易点,以后如果接入更多信息也是标准
做地图绝对不是一个前端或者后端就能做出来的,要好看,美观,实用,可扩展,要不为啥国内地图那么多提供地图的就几家 |
19
nonesuccess OP @murmur 对,我其实也是想问,按说我们的主业就是做业务系统的,那想加 GIS 模块的话,是自己研究明白了更好点,还是直接去买个方案更好点
|
20
murmur 2016-06-12 10:52:05 +08:00
@nonesuccess 拿到图纸 GIS 模块的开发都不是难点,无外乎是连接瓦片服务器,用一些前端代码在地图上描点罢了
|
21
yszx 2016-06-12 11:07:40 +08:00
去问 e 都市要定制吧···
|
22
babygame18 2016-06-12 14:02:26 +08:00 1
我前阵子开源的地图引擎,支持多数据图源,欢迎使用!!!
https://github.com/X-Maper/jMaper |
23
nonesuccess OP @murmur 图纸是什么?是厂区的 CAD 图之类的东西吗?
做地图绝对不是一个前端或者后端就能做出来的,要好看,美观,实用,可扩展,要不为啥国内地图那么多提供地图的就几家 还是不太理解,你的意思是难点在画地图还是用地图上。比如我找地图提供商去买的话,买来的是瓦片图吗,是不是买回来之后我导入到 geoserver 中,再用 openlayers 展现一下就可以了? 好看美观说的是地图本身的好看美观,还是网页上那个地图控件的好看美观?实用可扩展应该跟地图没关,完全是引擎的事吧,我用上面说的那些开源工具简单定制一下能做到吗?如果做不到的话,有没有成熟的方案可以买呢? |
24
murmur 2016-06-12 15:04:18 +08:00
@nonesuccess 瓦片图是有缩放级别的 不同的级别显示的精细度 内容都可能不一样 不是简单的图片缩放 至于做几级要看你们需求了
|
25
asdwfwqd 2016-06-12 15:07:02 +08:00
外包
|
26
nonesuccess OP @asdwfwqd 哪家公司比较靠谱?
|