码迷,mamicode.com
首页 > 其他好文 > 详细

[Google Map]创建右键菜单

时间:2014-09-30 17:22:49      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   java   

CSS样式:

        .contextMenu {
            position: absolute;
            min-width: 100px;
            z-index: 1000; 
            background: #fff;
            border-top: solid 1px #CCC;
            border-left: solid 1px #CCC;
            border-bottom: solid 1px #676767;
            border-right: solid 1px #676767;
            padding: 0px;
            margin: 0px;
            display: none; 
            text-align: center;
            /*font-size: smaller;*/
        }

            .contextMenu a:hover {
                cursor: pointer;
            }

关键代码:

        addMenu: function (menuItem) {
            if (menuItem) {
                var contextMenu = $("#rightMenu");
                var map = window.gmap;
                var parentdiv = $("<div  id=‘rightMenu‘ class=‘contextMenu‘></div>");
                for (var i = 0; i < menuItem.length; i++) {
                    var div = $("<a id=mugt" + i + "><div>" + menuItem[i].text + "</div></a>");
                    parentdiv.append(div);
                }
                $(window.gmap.getDiv()).append(parentdiv);
                google.maps.event.addListener(window.gmap, "rightclick", function (e) {
                    var contextMenu = $("#rightMenu");
                    if (contextMenu) {
                        contextMenu.hide();
                        var mapcontainer = $(window.gmap.getDiv());
                        var x = e.pixel.x;
                        var y = e.pixel.y;
                        if (x > mapcontainer.width() - contextMenu.width()) {
                            x -= contextMenu.width();
                        }
                        if (y > mapcontainer.height() - contextMenu.height()) {
                            y -= contextMenu.height();
                        }
                        contextMenu.css({ top: y, left: x }).fadeIn(100);
                        contextMenu.find(‘a‘).click(function (event) {
                            var text = $(this).context.innerText;
                            if (text) {
                                for (var i = 0; i < menuItem.length; i++) {
                                    if (menuItem[i].text == text) {
                                        menuItem[i].callback(e);
                                    }
                                    $("#mugt" + i).unbind(‘click‘);
                                }
                                contextMenu.hide();
                            }
                        });
                        //-----------------------------------------------------------
                        $.each(‘click dragstart zoom_changed maptypeid_changed‘.split(‘ ‘),
                         function (i, name) {
                             google.maps.event.addListener(window.gmap, name, function () {
                                 contextMenu.hide();
                             });
                         });
                    }
                });
            }
        }

代码使用:

function createContextMenu() {
            /// <summary>
            /// 创建地图右键菜单
            /// </summary>
            var txtMenuItem = [
                //{
                //    text: ‘创建坐标‘,
                //    callback: function (e) {
                //        var lat = e.lat;
                //        var lng = e.lng;
                //        $("#xlat").val(lat);
                //        $("#ylong").val(lng);
                //        createMarker(lng, lat);

                //    }
                //},
                {
                    text: ‘创建起点坐标‘,
                    callback: function (e) {
                        var lat = e.lat;
                        var lng = e.lng;
                        $("#x1").val(lat);
                        $("#y1").val(lng);
                        createMarker(lng, lat);

                    }
                },
                {
                    text: ‘创建结束坐标‘,
                    callback: function (e) {
                        var lat = e.lat;
                        var lng = e.lng;
                        $("#x2").val(lat);
                        $("#y2").val(lng);
                        createMarker(lng, lat);
                    }
                }
            ];
            GmapUtils.addMenu(txtMenuItem);
        }

代码效果:

bubuko.com,布布扣

这里的代码基于:Google Map JavaScript ApiV3;

菜单样式有点丑陋,大家可以自己美化,希望有所帮助!

[Google Map]创建右键菜单

标签:style   blog   http   color   io   os   使用   ar   java   

原文地址:http://www.cnblogs.com/Yan-Zhiwei/p/4001939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!