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

QQ登录

只需一步,快速开始

查看: 2099|回复: 0

[分享] 百度地图、定位,创建地图

[复制链接]

179

主题

709

帖子

2090

积分

金牌会员

QQ:1262363236

Rank: 6Rank: 6

积分
2090
QQ
发表于 2017-5-21 01:42:27 | 显示全部楼层 |阅读模式
//手机
define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        require("cordova!com.justep.cordova.plugin.bmap");
        var bmap = require('$UI/system/components/justep/bmap/bmap');
        var Model = function() {
                this.callParent();

        };
        Model.prototype.loadBaiduMap = function() {
                // 调用百度密钥
                require([ 'http://api.map.baidu.com/api?v=1.4&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
                        if (window.BMap && window.BMap.Map) {
                                window._baiduInit();
                        }
                });

                var id = this.getIDByXID("div1");
                window._baiduInit = function() {
                        map = new BMap.Map(id, {
                                minZoom : 2,
                                enableMapClick : false
                        }); // 创建地图对象,可以设置地图缩放最大最小级别,设置是否显示POI点击
                        var geoc = new BMap.Geocoder();
                        var point = new BMap.Point(window.lon, window.lat);
                        var pointA = new BMap.Point((window.lon), window.lat);
                        map.centerAndZoom(point, 20);
                        map.enableScrollWheelZoom(true); // 设置允许鼠标滚轮缩放地图
                        map.enableContinuousZoom(); // 设置连续缩放
                        map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
                        map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
                        map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件
                        map.enableScrollWheelZoom(); // 启用滚轮放大缩小,默认禁用
                        map.enableContinuousZoom(); // 启用地图惯性拖拽,默认禁用
                        var marker = new BMap.Marker(point); // 创建标注
                        var markerA = new BMap.Marker(pointA); // 创建标注
                        map.addOverlay(marker); // 将标注添加到地图中
                        map.addOverlay(markerA);
                        marker.setAnimation(BMAP_ANIMATION_BOUNCE); // 跳动的动画
                        markerA.addEventListener("click", getAttr);
                        function getAttr() {
                                var walking = new BMap.WalkingRoute(map, {
                                        renderOptions : {
                                                map : map,

                                                panel : "r-result",
                                                autoViewport : false
                                        }
                                });
                                walking.search(point, pointA);
                                walking.alert((map.getDistance(point, pointA)).toFixed(2) + ' 米。');
                        }
                        map.addEventListener("click", function(e) { // 增加鼠标点击事件
                                point = new BMap.Point(e.point.lng, e.point.lat);
                                geoc.getLocation(e.point, function(rs) {
                                        var addComp = rs.addressComponents;
                                });
                        });
                };

        };
        Model.prototype.modelModelConstructDone = function(event) {
                function success(data) {
                        if (data.coords.longitude != "" && data.coords.latitude != "") {
                                window.lon = data.coords.longitude;
                                window.lat = data.coords.latitude;
                        }
                }
                function fail(msg) {
                        alert("定位失败!错误消息:" + msg);
                }
                navigator.geolocation.getCurrentPosition(success, fail, null);

                 this.loadBaiduMap()

        };
        return Model;
});

//浏览器

define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var bmap = require('$UI/system/components/justep/bmap/bmap');
        var utils = require("$UI/demo/plugin/utils");
        var longitude=116.45764191999997;
        var        latitude = 39.8622934399999;
        var Model = function() {
                this.callParent();

        };

        Model.prototype.modelModelConstructDone = function(event) {
                 _this = this
                var gpsDtd = $.Deferred();
                if (navigator.geolocation) {
                        var success = function(data) {
                                // data.longtitude 经度
                                // data.latitude 纬度
                                // data.address 文字描述的地址信息
                                // data.hasRadius 是否有定位精度半径
                                // data.radius 定位精度半径
                                // data.type 定位方式
                                // data.coorType

                                 longitude=data.coords.longitude
                                latitude = data.coords.latitude
                                _this.loadBaiduMap()

                        };

                        var fail = function(e) {  
                                justep.Util.hint("获取地理位置失败,暂时采用默认地址");
                                longitude=116.45764191999997;
                                latitude = 39.8622934399999;
                                _this.loadBaiduMap()
                        };
                        /**
                         * 如果在室内 enableHighAccuracy: true 反而误差更大 如果在室外 enableHighAccuracy:
                         * true 相对准确
                         */
                        navigator.geolocation.getCurrentPosition(success, fail);

                } else {  
                        justep.Util.hint("获取地理位置失败,暂时采用默认地址");
                        longitude=116.45764191999997;
                        latitude = 39.8622934399999;
                        _this.loadBaiduMap()
                }


        };
        Model.prototype.loadBaiduMap = function() {
                // 调用百度密钥
                require([ 'http://api.map.baidu.com/api?v=1.4&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
                        if (window.BMap && window.BMap.Map) {
                                window._baiduInit();
                        }
                });
                var id = this.getIDByXID("div1");
                window._baiduInit = function() {
                        map = new BMap.Map(id, {
                                minZoom : 2,
                                enableMapClick : false
                        }); // 创建地图对象,可以设置地图缩放最大最小级别,设置是否显示POI点击
                        var geoc = new BMap.Geocoder();
                        var point = new BMap.Point(longitude, latitude);
                        var pointA = new BMap.Point((longitude), latitude);
                        map.centerAndZoom(point, 20);
                        map.enableScrollWheelZoom(true); // 设置允许鼠标滚轮缩放地图
                        map.enableContinuousZoom(); // 设置连续缩放
                        map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
                        map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
                        map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件
                        map.enableScrollWheelZoom(); // 启用滚轮放大缩小,默认禁用
                        map.enableContinuousZoom(); // 启用地图惯性拖拽,默认禁用
                        var marker = new BMap.Marker(point); // 创建标注
                        var markerA = new BMap.Marker(pointA); // 创建标注
                        map.addOverlay(marker); // 将标注添加到地图中
                        map.addOverlay(markerA);
                        marker.setAnimation(BMAP_ANIMATION_BOUNCE); // 跳动的动画
                        markerA.addEventListener("click", getAttr);
                        function getAttr() {
                                var walking = new BMap.WalkingRoute(map, {
                                        renderOptions : {
                                                map : map,

                                                panel : "r-result",
                                                autoViewport : false
                                        }
                                });
                                walking.search(point, pointA);
                                walking.alert((map.getDistance(point, pointA)).toFixed(2) + ' 米。');
                        }
                        map.addEventListener("click", function(e) { // 增加鼠标点击事件
                                point = new BMap.Point(e.point.lng, e.point.lat);
                                geoc.getLocation(e.point, function(rs) {
                                        var addComp = rs.addressComponents;
                                });
                        });
                };

        };
        return Model;
});



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

本版积分规则

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

GMT+8, 2024-5-20 03:35 , Processed in 0.059615 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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