Google Map 右键菜单

这几天忙着学习google地图,google地图说简单很简单,说不简单也不简单。这几天也送网上查了很多资料,我怕自己忘记,所以自己记录下载。由于是转载的转来来转去的都不知道作者是谁了!这就冒犯一下了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>GoogleMap右键菜单</title>
<script
    src="http://ditu.google.cn/maps?file=api&amp;v=2&amp;key=abcdefg&sensor=false"
    type="text/javascript"></script>
<script type="text/javascript">
    var map = null;
    var contextmenu;

    function load() {
        if (GBrowserIsCompatible()) {
            var point;
            map = new GMap2(document.getElementById("map"));

            map.addControl(new GOverviewMapControl());
            map.enableDoubleClickZoom();
            map.enableScrollWheelZoom();
            map.addControl(new GMapTypeControl());
            map.addControl(new GLargeMapControl3D());
            createContextMenu(map);
            var address = '佛山';
            point = new GLatLng(23.021548, 113.121416);
            var marker = new GMarker(point);
            map.setCenter(point, 17);
            map.addOverlay(marker);
            GEvent.addListener(marker, "click", function() {
                marker.openInfoWindowHtml(address);
            });
            marker.openInfoWindowHtml(address);
        }
    }

    function createContextMenu(map) {
        contextmenu = document.createElement("div");
        contextmenu.style.visibility = "hidden";
        contextmenu.style.background = "#ffffff";
        contextmenu.style.border = "1px solid #8888FF";
        contextmenu.innerHTML ="<a href='javascript:zoomIn()'><div class='context'> 放大 </div></a>"
             + "<a href='javascript:zoomOut()'><div class='context'> 缩小 </div></a>"
             + "<a href='javascript:zoomInHere()'><div class='context'> 以此为中心放大 </div></a>"
             + "<a href='javascript:zoomOutHere()'><div class='context'> 以此为中心缩小 </div></a>"
             + "<a href='javascript:centreMapHere()'><div class='context'> 以此居中 </div></a>";
        map.getContainer().appendChild(contextmenu);
        GEvent.addListener(map, "singlerightclick", function(pixel, tile) {
            clickedPixel = pixel;
            var x = pixel.x;
            var y = pixel.y;
            if (x > map.getSize().width - 120) {
                x = map.getSize().width - 120
            }
            if (y > map.getSize().height - 100) {
                y = map.getSize().height - 100
            }
            var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x, y));
            pos.apply(contextmenu);
            contextmenu.style.visibility = "visible";
        });
        //点击地图隐藏右键菜单
        GEvent.addListener(map, "click", function() {
            contextmenu.style.visibility = "hidden";
        });
    }
    
         
    function zoomIn() {
        map.zoomIn();
        contextmenu.style.visibility = "hidden";
    }

    function zoomOut() {
        map.zoomOut();
        contextmenu.style.visibility = "hidden";
    }

    function zoomInHere() {
        var point = map.fromContainerPixelToLatLng(clickedPixel)
        map.zoomIn(point, true);
        contextmenu.style.visibility = "hidden";
    }

    function zoomOutHere() {
        var point = map.fromContainerPixelToLatLng(clickedPixel)
        map.setCenter(point, map.getZoom() - 1);
        contextmenu.style.visibility = "hidden";
    }

    function centreMapHere() {
        var point = map.fromContainerPixelToLatLng(clickedPixel)
        map.setCenter(point);
        contextmenu.style.visibility = "hidden";
        }
</script>
</head>
<body οnlοad="load()" οnunlοad="GUnload()"
    style="background-color: Transparent">
<div id="map" style="width: 800px; height: 600px"></div>
</body>
</html>
demo下载

转载于:https://www.cnblogs.com/xiaopen/archive/2011/03/29/googlemaprightclick.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在 Vue 中使用高德地图的右键菜单,可以借助高德地图 JavaScript API 中的 `ContextMenu` 类。具体实现步骤如下: 1. 在 Vue 中安装高德地图 JavaScript API,可以通过引入高德地图 JavaScript API 的 JS 文件来实现。 2. 在 Vue 中创建地图容器,可以使用 `AMap.Map` 类来创建地图对象,并将地图容器挂载到 Vue 的模板中。 3. 在地图上添加右键菜单,可以使用 `AMap.ContextMenu` 类来创建右键菜单对象,并使用 `AMap.Map` 的 `on` 方法来绑定右键单击事件。在事件回调函数中,可以使用 `AMap.ContextMenu` 的 `open` 方法来打开右键菜单。 4. 在右键菜单中添加菜单项,可以使用 `AMap.ContextMenu` 的 `addItem` 方法来添加菜单项。在菜单项的点击事件回调函数中,可以实现具体的操作。 下面是一个简单的示例代码: ```html <template> <div id="map"></div> </template> <script> export default { mounted() { // 创建地图对象,将地图容器挂载到模板中 const map = new AMap.Map('map', { zoom: 10, center: [116.39, 39.9] }) // 创建右键菜单对象 const contextMenu = new AMap.ContextMenu() // 添加菜单项 contextMenu.addItem('菜单项1', () => { console.log('点击了菜单项1') }) contextMenu.addItem('菜单项2', () => { console.log('点击了菜单项2') }) // 绑定右键单击事件 map.on('rightclick', (e) => { // 打开右键菜单 contextMenu.open(map, e.lnglat) }) } } </script> <style scoped> #map { height: 400px; } </style> ``` 在上面的示例代码中,我们创建了一个地图容器,并使用 `AMap.Map` 类来创建地图对象。然后,我们创建了一个右键菜单对象,并使用 `AMap.ContextMenu` 的 `addItem` 方法添加了两个菜单项。最后,在地图对象的右键单击事件回调函数中,我们调用了右键菜单对象的 `open` 方法来打开右键菜单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值