Maps 如何美化OpenLayers地图
我需要建立一个网络应用程序,以呈现不同的标记地图。Maps 如何美化OpenLayers地图,maps,openlayers,Maps,Openlayers,我需要建立一个网络应用程序,以呈现不同的标记地图。 我想使用一个解决方案作为OpenLayers,但我希望地图有一个“更好”的外观(例如)。你知道有哪一个库可以与OpenLayers一起使用来改善它的外观吗?不太确定你想“美化”哪些部分,但你可能比看一看更糟糕,这将sensha Extjs的UI与OpenLayers结合起来。我用它制作了一些非常有吸引力的webGIS应用程序 希望这能有所帮助 Olly您可以使用css和图像根据需要设置地图按钮的样式。蓝色默认按钮上的流行主题是(更多信息) 对于
我想使用一个解决方案作为OpenLayers,但我希望地图有一个“更好”的外观(例如)。你知道有哪一个库可以与OpenLayers一起使用来改善它的外观吗?不太确定你想“美化”哪些部分,但你可能比看一看更糟糕,这将sensha Extjs的UI与OpenLayers结合起来。我用它制作了一些非常有吸引力的webGIS应用程序 希望这能有所帮助
Olly您可以使用css和图像根据需要设置地图按钮的样式。蓝色默认按钮上的流行主题是(更多信息)
对于功能样式,请查看如果您使用的是谷歌地图,则可以轻松完成此操作 您必须做的是将openlayers.js脚本的源代码复制到您的公共可用目录,例如
public/js/openlayers.js
。剧本缩小了。你需要打开它,找到上面写着google.maps.Map
的地方,并在必要的地方添加分隔符(这只是让它更易于阅读)来取消对该语句的整理。然后需要将styles属性添加到第二个参数中。在本网站上可以免费找到一些样式选项:
最后,在定制的openlayers.js文件中应该有这样一个部分:
google.maps.Map(b,{
center:a?new google.maps.LatLng(a.lat,a.lon):new google.maps.LatLng(0,0),
zoom:this.map.getZoom()||0,
mapTypeId:this.type,
disableDefaultUI:!0,
keyboardShortcuts:!1,
draggable:!1,
disableDoubleClickZoom:!0,
scrollwheel:!1,
streetViewControl:!1,
styles: [{"featureType":"road","stylers":[{"hue":"#5e00ff"},{"saturation":-79}]},{"featureType":"poi","stylers":[{"saturation":-78},{"hue":"#6600ff"},{"lightness":-47},{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"lightness":22}]},{"featureType":"landscape","stylers":[{"hue":"#6600ff"},{"saturation":-11}]},{},{},{"featureType":"water","stylers":[{"saturation":-65},{"hue":"#1900ff"},{"lightness":8}]},{"featureType":"road.local","stylers":[{"weight":1.3},{"lightness":30}]},{"featureType":"transit","stylers":[{"visibility":"simplified"},{"hue":"#5e00ff"},{"saturation":-16}]},{"featureType":"transit.line","stylers":[{"saturation":-72}]},{}]
}),
这里的缺点是,如果Google API和/或openlayers.js脚本发生更改,您可能会破坏地图,因为您有一个脚本的静态副本。我发现这是一个罕见的事件,为一张更漂亮的地图付出的代价很小。呃,你为什么不能使用传单?你说的更好的外观是什么意思,地图瓷砖还是控件?定制OpenLayers会让你头疼,这根本不是为了好看。只要用传单代替,你就会没事的。:)