• google maps v3 添加自定义图标(marker,overlay)


    google搜了很久都没找到符合v3版本的google maps自定义图标,可以让图标使用自己的html,都是V2版本的,依靠重写google api属性来完成.

    然后就找了个jquery下的google maps插件: GMAP3(http://gmap3.net)

    经过研究发现...这货很方便,而且我也实现了自己的图标!

    我的自定义图标使用的是bootstrap插件:font-awesome中的icon.

    首先,引入

    <link href="bootstrap.css" rel="stylesheet"/>
    <link href="bootstrap-responsive.css" rel="stylesheet"/>
    <link href="font-awesome.css" rel="stylesheet"/>
    <script type="text/javascript" src="jquery.js"></script>
    <script src="https://maps.googleapis.com/maps/api/js?&sensor=false" type="text/javascript"></script>
    <script type="text/javascript" src="gmap3.js"></script>

    然后简历一个json

    var $values = [
                          {
                              latLng: [48.8620722, 2.352047], data: "Paris !",
                              options: {
                                  icon: "marker_icon_bg.png",
                                  content: '<i style="color:#fff" class="icon-food"></i>',
                                  offset: {
                                      y: -32,
                                      x: -6
                                  }
                              }
                          },
                          {
                              address: "86000 Poitiers, France", data: "Poitiers : great city !",
                              options: {
                                  icon: "marker_icon_bg.png",
                                  content: '<i style="color:#fff" class="icon-picture"></i>',
                                  offset: {
                                      y: -32,
                                      x: -8
                                  }
                              }
                          },
                          {
                              address: "66000 Perpignan, France", data: "Perpignan ! <br> GO USAP !",
                              options: {
                                  icon: "marker_icon_bg.png",
                                  content: '<i style="color:#fff" class="icon-building"></i>',
                                  offset: {
                                      y: -32,
                                      x: -6
                                  }
                              }
                          }
            ];

    直接调用gmap3的方法:

    $(function () {
    
                $('#map_canvas').gmap3({
                    map: {
                        options: {
                            center: [46.578498, 2.457275],
                            zoom: 5
                        }
                    },
                    marker: {
                        values: $values,
                        options: {
                            draggable: false
                        },
                        events: {
                            mouseover: function (marker, event, context) {
                                var map = $(this).gmap3("get"),
                                  infowindow = $(this).gmap3({ get: { name: "infowindow" } });
                                if (infowindow) {
                                    infowindow.open(map, marker);
                                    infowindow.setContent(context.data);
                                } else {
                                    $(this).gmap3({
                                        infowindow: {
                                            anchor: marker,
                                            options: { content: context.data }
                                        }
                                    });
                                }
                            },
                            mouseout: function () {
                                var infowindow = $(this).gmap3({ get: { name: "infowindow" } });
                                if (infowindow) {
                                    infowindow.close();
                                }
                            }
                        }
                    },
                    overlay: {
                        values: $values
                    }
                });
            });

    Body部分:

    <body>
        <div id="map_canvas" style="100%; height:100%"></div>
    </body>

    相当方便!直接产生了地标背景上出现图标,而且还是json方式的,方便我们生成!

  • 相关阅读:
    ES6的let命令
    html5的新标签
    text()和html()的区别,以及val()
    jquery链接多个jquery方法
    jquery实现动画
    jquery的滑动
    jquery实现淡入淡出
    jquery的hide()和show()
    jquery里面的名称冲突解决方法
    写给W小姐的一封信
  • 原文地址:https://www.cnblogs.com/alipig/p/3183651.html
Copyright © 2020-2023  润新知