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会让你头疼,这根本不是为了好看。只要用传单代替,你就会没事的。:)