起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1407|回复: 2

[处理中4] 求看得懂代码的大神解决,在线等,关于地理位置信息的,

[复制链接]

6

主题

19

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
发表于 2017-5-1 11:50:55 | 显示全部楼层 |阅读模式
这是一个代码,我想知道这篇代码中,具体位置信息是哪一个变量,可以alert出来不?



define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var ShellImpl = require('$UI/system/lib/portal/shellImpl');
        require("cordova!cordova-plugin-geolocation");
        require("cordova!com.justep.cordova.plugin.baidulocation");

        var Model = function() {
                this.callParent();
       
                        this.arr = [];
        };
        /*
                var Model = function() {
                this.callParent();
                this.arr = [];
        };
        */

                       
        // 百度地图
        Model.prototype.modelLoad = function(event) {
                // 调用百度地图
                require([ 'http://api.map.baidu.com/api?v=2.0&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
                        if (window.BMap && window.BMap.Map) {
                                window._baiduInit();
                        }
                });
                var self = this;
                var id = this.getIDByXID("mapDiv");// mapDiv中添加地图
                window._baiduInit = function() {
                        // 百度API功能
                        var map = new BMap.Map(id);
                        var geol = new BMap.Geolocation();// 创建定位对象
                        var geoc = new BMap.Geocoder();// 创建定位对象

                        // 定位成功开始画地图
                        var success = function(data) {
                                var lng = data.coords.longitude;
                                var lat = data.coords.latitude;
                                var coorType = data.coorType || "gps";

                                // 添加判断,使地图可以同时支持Android和ios
                                // 判断是否为百度经纬度坐标
                                if (coorType == "bd09ll") {

                                        // 百度
                                        map.centerAndZoom(new BMap.Point(lng, lat), 17);// 设置中心点和地图比例
                                        map.setCurrentCity("北京");// 以城市名称为参数设置地图
                                        var marker = new BMap.Marker(new BMap.Point(lng, lat));// 标注对象
                                        map.addOverlay(marker);// 在地图上标注

                                        var mOption = {
                                                poiRadius : 500, // 半径为500米内的POI,默认100米
                                                numPois : 50
                                        // 列举出50个POI,默认10个
                                        };
                                        var pointArr = [];
                                        geoc.getLocation(new BMap.Point(lng, lat), function(rs) {
                                                var arr = rs.surroundingPois;
                                                for (var i = 0; i < arr.length; i++) {
                                                        var options = {
                                                                defaultValues : [ {
                                                                        curLng : arr[i].point.lng,
                                                                        curLat : arr[i].point.lat,
                                                                        title : arr[i].title,
                                                                        type : arr[i].Ui
                                                                } ]
                                                        };
                                                        self.comp("MapData").newData(options);
                                                        // 为获取到的地点信息添加定点
                                                        var point = new BMap.Marker(new BMap.Point(arr[i].point.lng, arr[i].point.lat));// 标注对象
                                                        map.addOverlay(point);// 在地图上标注

                                                        // 更换定点图标
                                                        var myIcon = new BMap.Icon("./images/map01.png", new BMap.Size(120, 112));// 图片路径和大小(width,height)
                                                        var marker = new BMap.Marker(new BMap.Point(arr[i].point.lng, arr[i].point.lat), {
                                                                icon : myIcon
                                                        }); // 创建标注
                                                        map.addOverlay(marker); // 将标注添加到地图中
                                                        // 添加文本标注
                                                        var label = new BMap.Label("位置" + (i + 1), {
                                                                offset : new BMap.Size(40, 30)
                                                        // 设置文本偏移量
                                                        });
                                                        // 设置字体样式
                                                        label.setStyle({
                                                                color : "white",
                                                                fontSize : "18px",
                                                                height : "20px",
                                                                lineHeight : "20px",
                                                                fontFamily : "微软雅黑"
                                                        });
                                                        marker.setLabel(label);
                                                }
                                        }, mOption);
                                        // 添加带有定位的导航控件
                                        var navigationControl = new BMap.NavigationControl({
                                                // 靠左上角位置
                                                anchor : BMAP_ANCHOR_TOP_LEFT,
                                                // LARGE类型
                                                type : BMAP_NAVIGATION_CONTROL_LARGE,
                                                // 启用显示定位
                                                enableGeolocation : true
                                        });
                                        map.addControl(navigationControl);

                                        // 若不是,则使用GPS坐标定位
                                } else if (coorType == "gps") {
                                        $.ajax({
                                                method : "GET",
                                                url : "/baas/bmap/api/convertLocation",
                                                cache : false,
                                                data : {
                                                        longitude : lng,
                                                        latitude : lat
                                                }
                                        }).done(function(result) {

                                                // GPS
                                                var bmapResult = JSON.parse(result);
                                                var lng = bmapResult.result[0].x;
                                                var lat = bmapResult.result[0].y;
                                                map.centerAndZoom(new BMap.Point(lng, lat), 17);// 设置中心点和地图比例
                                                map.setCurrentCity("北京");// 以城市名称为参数设置地图
                                                var marker = new BMap.Marker(new BMap.Point(lng, lat));// 标注对象
                                                map.addOverlay(marker);// 在地图上标注

                                                var mOption = {
                                                        poiRadius : 500, // 半径为500米内的POI,默认100米
                                                        numPois : 50
                                                // 列举出50个POI,默认10个
                                                };
                                                var pointArr = [];
                                                geoc.getLocation(new BMap.Point(lng, lat), function(rs) {
                                                        var arr = rs.surroundingPois;
                                                        for (var i = 0; i < arr.length; i++) {
                                                                var options = {
                                                                        defaultValues : [ {
                                                                                curLng : arr[i].point.lng,
                                                                                curLat : arr[i].point.lat,
                                                                                title : arr[i].title,
                                                                                type : arr[i].Ui
                                                                        } ]
                                                                };
                                                                self.comp("MapData").newData(options);
                                                                // 为获取到的地点信息添加定点
                                                                var point = new BMap.Marker(new BMap.Point(arr[i].point.lng, arr[i].point.lat));// 标注对象
                                                                map.addOverlay(point);// 在地图上标注

                                                                // 更换定点图标
                                                                var myIcon = new BMap.Icon("./images/map01.png", new BMap.Size(120, 112));// 图片路径和大小(width,height)
                                                                var marker = new BMap.Marker(new BMap.Point(arr[i].point.lng, arr[i].point.lat), {
                                                                        icon : myIcon
                                                                }); // 创建标注
                                                                map.addOverlay(marker); // 将标注添加到地图中
                                                                // 添加文本标注
                                                                var label = new BMap.Label("位置" + (i + 1), {
                                                                        offset : new BMap.Size(40, 30)
                                                                // 设置文本偏移量
                                                                });
                                                                // 设置字体样式
                                                                label.setStyle({
                                                                        color : "white",
                                                                        fontSize : "18px",
                                                                        height : "20px",
                                                                        lineHeight : "20px",
                                                                        fontFamily : "微软雅黑"
                                                                });
                                                                marker.setLabel(label);
                                                        }
                                                }, mOption);
                                        });
                                }
                        };
                        // 若定位失败返回
                        var error = function() {
                                alert("定位失败");
                        };
                        // 若定位成功运行success,否则运行error
                        navigator.geolocation.getCurrentPosition(success, error);
                };
               
        };

        Model.prototype.nextBtnClick = function(event) {
                var row = this.comp('MapData').getCurrentRow();
                var params = {
                        data : row
                };
               
                var self = this;
               
               
                justep.Shell.showPage("input", params).done(function() {
                        self.close();
                });
               
        };

        Model.prototype.titleClick = function(event){
                $(event.target).css({
                        "color" : "red"
                }).siblings().css({
                        "color" : ""
                });
        };

        return Model;
});

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-2 10:58:15 | 显示全部楼层
你用的是平台提供的吗?如果是平台提供的  那么关于具体位置信息的那部分  由于百度地图的更新导致了我们api的失效  所以是无法获取的  

目前只能自己去采用百度地图里面新提供的api的
回复 支持 反对

使用道具 举报

6

主题

19

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
 楼主| 发表于 2017-5-6 17:43:10 | 显示全部楼层
半导体 发表于 2017-5-2 10:58
你用的是平台提供的吗?如果是平台提供的  那么关于具体位置信息的那部分  由于百度地图的更新导致了我们ap ...

这是平台提供的,可以实现定位的功能,地图DIV下方也可以显示附近的点供用户选择实际位置,我就是想把用户选择的位置alert出来,我开始alert的是params,但显示的是object,不是一个位置信息。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-17 21:21 , Processed in 0.084840 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表