小伙伴在用百度高德这类地图的时候有木有发现当地图放大到一定倍数之后就会出现三维效果(2.5纬)。作为一个爱寻根究底的人,我们一定会问,这种地图是如何实现的呢?基于arcgis或者超图吗?NONONO,这类软件太贵!基于Unity3D这类开源的三维引擎做的?NONONO,这是真三维地图。笔者的原则就是能用开源软件就绝不会用商业软件。由于现在主流的制作web地图的开源软件是geoserver+openlayers+postgresql。因此笔者就思索如何基于geoserver和openlayer制作一个伪三维地图。
由于geoserver不支持直接导入三维模型,隐藏笔者直接着眼于sld,看看能不能通过sld来表达三维效果,经过网上的搜索,找到了类似的配置,试验一下成功。
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
default_polygon
Default PolygonA sample style that draws a polygon
geom
0.00001
#dddddd
#999999
0.1