标签: 腾讯地图调用

  • 非插件方式实现wordpress网站调用腾讯地图

    要实现通过腾讯地图API调用并将信息框(InfoWindow)居中显示在地图中心坐标点,需遵循腾讯地图API规范,核心步骤包括:引入API、初始化地图、创建信息框并绑定到中心坐标,同时通过样式/配置确保信息框居中显示。以下是完整实现方案:

    一、前置准备

    获取腾讯地图Key:

    前往腾讯地图开放平台注册账号,创建应用并获取API Key(必填)。

    API引入:

    引入腾讯地图JavaScript API(支持HTTPS),需替换key=你的API_KEY为实际密钥。

    二、完整代码示例

    
        <!-- 引入腾讯地图API(替换为你的Key) -->
        <script src="https://map.qq.com/api/js?v=2.exp&key=你的API_KEY"></script>
        <style>
            /* 地图容器样式 */
            #mapContainer {
                width: 100%;
                height: 600px;
                margin: 0;
                padding: 0;
            }
            /* 自定义信息框样式(可选,确保内容居中) */
            .custom-info-window {
                padding: 10px 20px;
                text-align: center; /* 内容水平居中 */
                font-size: 14px;
                color: #333;
                background: #fff;
                border-radius: 8px;
                box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            }
        </style>
    </head>
    <body>
        <div id="mapContainer"></div>
    
        <script>
            // 1. 初始化地图(设置中心坐标,示例:北京市中心)
            function initMap() {
                // 定义中心坐标(纬度、经度)
                const centerLatLng = new qq.maps.LatLng(39.908823, 116.397470);
                
                // 初始化地图实例
                const map = new qq.maps.Map(document.getElementById("mapContainer"), {
                    center: centerLatLng, // 地图中心坐标
                    zoom: 14, // 缩放级别(1-18)
                    mapTypeId: qq.maps.MapTypeId.ROADMAP // 地图类型(普通道路图)
                });
    
                // 2. 创建信息框(InfoWindow)
                const infoWindow = new qq.maps.InfoWindow({
                    map: map, // 绑定到当前地图
                    position: centerLatLng, // 信息框定位到中心坐标
                    content: '<div class="custom-info-window">这是居中显示的信息框<br>坐标:39.908823, 116.397470</div>', // 信息框内容
                    offset: new qq.maps.Size(0, 0), // 偏移量(关键:设为0确保居中)
                    disableAutoPan: true // 禁用自动平移(避免地图偏移)
                });
    
                // 3. 强制信息框显示(默认创建后需手动open,或初始化时显示)
                infoWindow.open();
    
                // 可选:监听地图移动,保持信息框始终在中心
                qq.maps.event.addListener(map, 'center_changed', function() {
                    infoWindow.setPosition(map.getCenter()); // 地图中心变化时,同步信息框位置
                });
            }
    
            // 页面加载完成后初始化地图
            window.onload = initMap;
        </script>
    

    在wordpress网站需要显示的位置对应的模板中加入上面的代码,并把中心坐标点的值和API Key替换成自己的就可以。

    三、核心要点说明

    1.信息框居中关键配置

    position绑定中心坐标:

    infoWindow.setPosition(map.getCenter())或初始化时position: centerLatLng,确保信息框锚点在地图中心。

    offset偏移量设置:

    new qq.maps.Size(0,0)表示信息框锚点无偏移(默认锚点在信息框底部中心,设为0可完全居中)。若需调整,可设Size(-width/2,-height/2)适配自定义样式。

    disableAutoPan禁用自动平移:

    避免信息框显示时地图自动偏移,确保中心位置不变。

    2.动态跟随地图中心

    通过center_changed事件监听地图移动,实时更新信息框位置:

    qq.maps.event.addListener(map, 'center_changed', function() {
        infoWindow.setPosition(map.getCenter());
    });

    3.自定义信息框样式

    通过content传入HTML结构,结合CSS实现居中、美化;

    若信息框宽度固定,可通过margin:0 auto确保内部内容居中;

    如需调整信息框相对于锚点的位置,可修改offset参数(例如Size(0,-20)向上偏移20px)。

    四、常见问题解决

    信息框未显示:

    检查API Key是否有效、坐标格式是否正确(纬度在前,经度在后)、是否调用infoWindow.open()。

    信息框偏移:

    调整offset参数,或检查地图容器是否有padding/margin导致视觉偏移。

    地图加载失败:

    确保API引入链接正确(v=2.exp为稳定版本)、Key未绑定错误域名(腾讯地图Key需配置允许的域名/IP)。

    替换代码中的你的API_KEY后,即可直接运行,实现信息框在地图中心坐标点居中显示的效果。

    坐标拾取工具

    https://lbs.qq.com/getPoint