腾讯位置服务:拾取坐标的四种开发方式

本文介绍了如何利用QQ地图的API在网页中实现地址与经纬度之间的转换。通过JavaScript函数getPoints自动将详细地址转化为经纬度,但若地址不详细则需要用户手动在地图上选取。此外,还提供了地图选点组件的使用方法,允许用户在地图上直接点击选取坐标,并通过backurl调用进行参数传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网地址

在这里插入图片描述
官网的坐标拾取器,直接在需要拾取经纬度表单的地方,添加链接即可。但是在后台使用此方式,友好化不是很好。
传送门:https://lbs.qq.com/tool/getpoint/index.html

地址转码

    //自動獲取經緯度;
    var getAddress = function transAddress() {
        var address = $("#address").val();
        getPoints(address);
    }

    //前端页面输出;
    function getPoints(address) {
        $.getJSON("points.php", {address: address}, function (res) {
            if (res.status == 0) {
                $("#lng").val(res.result.location.lng);
                $("#lat").val(res.result.location.lat);
            } else {
                $("#message").html(res.message);
            }
        });
    }

有点是:地址详细的话,会自动转化为对应的经纬度;
缺点是:如果地址不详细,需要二次选择经纬度。
传送门:https://blog.csdn.net/weixin_41290949/article/details/113412823

页面点选

在这里插入图片描述

//选择坐标处理
var map;
var marker;
var center = new qq.maps.LatLng(39.916527, 116.397128);
map = new qq.maps.Map(document.getElementById('map'), {
    center: center,
    zoom: 10
});

//获取城市列表接口设置中心点
citylocation = new qq.maps.CityService({
    complete: function (result) {
        map.setCenter(result.detail.latLng);
        //添加标记
        marker = new qq.maps.Marker({
            position: result.detail.latLng,
            draggable: true,
            map: map
        });
        //添加到提示窗
        var info = new qq.maps.InfoWindow({
            map: map
        });

        //绑定地图点击事件
        qq.maps.event.addListener(map, "click", function (e) {
            $("#L_lon_lat").val(e.latLng.lat + ',' + e.latLng.lng);
            //先移除标记,再添加标记
            marker.setMap(null);
            marker = new qq.maps.Marker({
                position: new qq.maps.LatLng(e.latLng.getLat(), e.latLng.getLng()),
                map: map
            });
        });
    }
});

//调用searchLocalCity();方法    根据用户IP查询城市信息。
citylocation.searchLocalCity();

地图选点组件

传送门:[https://lbs.qq.com/webApi/component/componentGuide/componentPicker](https://lbs.qq.com/webApi/component/componentGuide/componentPicker)

backurl调用

<a href="//apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=https://iot.qiaodu.net/case/didi/admin.php?m=Poi%26a=poiAdd%26act=addShow&key=您的key&referer=myweb">选择经纬度</a>

地址需要转码“&”转为“%26”,否则,带有参数的页面无法正常传参。

前端获取经纬度

    var b = decodeURIComponent(getQueryVar("latng"));
    $("#L_lon_lat").val(b);
    //获取参数;
    function getQueryVar(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return (false);
    }

lockdatav Done!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值