天天看点

GIS(三)——优化js版搜狗地图的brand标牌样式

       其实要想不被遮挡,可以让这几个brand位置变动一下,而不总是箭头向下指向景点。如果改变箭头的指向呢?首先我们要了解它原本是怎么处理的。这个肯定是从spirit入手了。

       先说一下spirit的参数:

GIS(三)——优化js版搜狗地图的brand标牌样式

       由于这个brand可以自适应宽度,我以为它是以多张图片完成的这个功能,但是看到打开这个url对应的图片(上图),才发现原来只是一张图片。而自适应宽度则是clips设置的功劳了。clips就是从这张图片上切不同的位置作为图片进行显示。clips分为4块,左侧、中间、右侧可以完成自适应宽度。而尖脚则是箭头在图片中的位置。每一个切出来的图片都是从左上角的坐标+宽高切出来的。为什么不设定多设定几张图片呢?这是为了减少下载小图标的次数。

GIS(三)——优化js版搜狗地图的brand标牌样式

       终于明白了这个brand箭头的处理了。我们要想改变箭头的指向,必须得修改图片了。如果你学做ps,这个工作就简单多了。下面是我修改的图片:

GIS(三)——优化js版搜狗地图的brand标牌样式

       就是多整几个箭头即可。如果想让箭头向右的话,就在切尖角的参数中,切向右箭头的位置,然后anchor也要设定,把箭头偏移到景点的位置。footOffset则需要调整到整个图片的右侧。很简单,自己试着调整一下就明白了。

       还回到咱们原先的话题。现在有多个景点,可能需要指向不同的方向,所以咱们就不能设定死了,那么就需要设定4个function,来得到4中方向的spirit。根据具体情况来选择不同的brand指向。

       下面是我调整好的function:

       对应的效果图如下:

GIS(三)——优化js版搜狗地图的brand标牌样式
GIS(三)——优化js版搜狗地图的brand标牌样式
GIS(三)——优化js版搜狗地图的brand标牌样式
GIS(三)——优化js版搜狗地图的brand标牌样式

       4个js方法调好了,那么如何针对不同的景点来设定不同的brand指向呢?其实很简单,我们只要为每个景点跟调用的方法名关联上,通过不同的名字字节调用即可。

       在景点数组中,设定一个brand属性,取值域为:up、down、left、right。然后再写一个function,这个function主要是把通过brand来调用对应的方法名:

       修改加载标牌的function如下:

       效果图:

GIS(三)——优化js版搜狗地图的brand标牌样式

       效果还不错吧。有没有一点点心动呢?那就快快行动起来吧!

       如果你的审美比较高的话,你会发现其实这样处理,虽然都错开了,但是却没有美感。如何处理呢?一篇博文,我将做最终的美化版,大家期待一下吧。

继续阅读