美文网首页
uniapp地图拾取中心点坐标经纬度并进行反编码

uniapp地图拾取中心点坐标经纬度并进行反编码

作者: dongzhensong | 来源:发表于2019-08-09 09:37 被阅读0次

准备:使用了高德地图,所以需要前往高德开放平台申请appkey(安卓,iOS各一个)。申请过程不做介绍。

1.首先打开配置文件中的maps模块

image.png

2.其次配置高德appkey

image.png

3.开发

3.1 准备素材

图片:


Location.png

新建页面:


image.png

3.2 开发

页面模板中放入地图组件:

      <view>
        <view class="page-body">
            <view class="page-section page-section-gap">
                <map id="midMap" style="width: 100%; height: 300px;" :latitude="latitude" :longitude="longitude">
                    <cover-image class="coverIcon" src="/static/img/Location.png"></cover-image>
                </map>
            </view>
            <button class="confirmBtn" @click="getCenter()">确 定</button>
        </view>
    </view>

脚本中定义页面内全局变量地图对象

<script>
    var appMap = null;
    // ...
</script>

页面onReady时获取地图对象

                onReady(options) {
            console.log("onReady");
            appMap = uni.createMapContext("midMap", this).$getAppMap();
            appMap.showUserLocation(true);
        },

上面用到的api,可查看uniapp接口文档--createmapcontext

获取中心点经纬度并反编码:

        // methods中添加函数:
        getCenter: function() {
                var _that = this;
                appMap.getCurrentCenter(
                    function(state, point) {
                        if (0 == state) {
                            // 反编码
                            var point = new plus.maps.Point(point["longitude"], point["latitude"]);
                            plus.maps.Map.reverseGeocode(point, {}, function(event) {
                                var address = event.address; // 转换后的地理位置
                                var coord = event.coord; // 转换后的坐标信息
                                var coordType = event.coordType; // 转换后的坐标系类型
                                console.log("Address:" + address);
                                console.log("coord", coord);
                                uni.showModal({
                                    title: "提示",
                                    content: "确定:" + address + "?",
                                    success: function(res) {
                                        if (res.confirm) {
                                            // 业务逻辑...
                                        } else if (res.cancel) {
                                        }
                                    }
                                })
                            }, function(e) {
                                // console.log("Failed:" + JSON.stringify(e));
                                uni.showToast({
                                    title: '反编码失败' + JSON.stringify(e)
                                });
                            });
                        } else {
                            uni.showToast({
                                icon: "none",
                                title: "获取经纬度失败!" + state
                            })
                        }
                    }
                );
            }

有关上面用到的api,可查看5+app的接口文档--maps

可尝试拨动地图位置,改变地图中心点位置。点击确定

image.png

相关文章

网友评论

      本文标题:uniapp地图拾取中心点坐标经纬度并进行反编码

      本文链接:https://www.haomeiwen.com/subject/gyxcjctx.html