精华内容
下载资源
问答
  • 安卓手机获取当前定位是不准确,ios可以,上一篇博客有说怎样获取当前精准定位感兴趣小伙伴可以去看下 获取用户当前位置精准定位亲测有效。 <!DOCTYPE html> <html> <head> <meta ...

    copy就能用的,改上你自己的秘钥。
    安卓手机获取当前定位是不准确的,ios可以,上一篇博客有说怎样获取当前精准定位感兴趣的小伙伴可以去看下
    获取用户当前位置精准定位亲测有效。
    在这里插入图片描述

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <style type="text/css">
            body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
            .button-full{
                position: fixed;
                bottom: 0;
                left: 0;
                z-index: 999;
                height: 50px;
                width: 100%;
                line-height: 50px;
                font-size: 16px;
                text-align: center;
                color: #fff;
                background: #333;
                text-decoration: none;
            }
        </style>
        <script type="text/javascript" src="http://api.map.baidu.com/getscript?v=2.0&ak=你的秘钥"></script>
        <title>地图展示</title>
    </head>
    <body>
        <div id="allmap"></div>
        <a id="chosedBtn" class=" button-full">选择这个地址</a>
    </body>
    <script type="text/javascript">
        //创建默认初始化Map实例
        (function(){
             
            mapObj = {
                com: {
                    map : new BMap.Map("allmap"),
                    infoWindow :  new BMap.InfoWindow("正在载入..", {offset : new BMap.Size(10, -60)}),
                    icon: new BMap.Icon("./address.png", new BMap.Size(60, 60)),
                    iconOffsetSize: new BMap.Size(0, -20),
                    chosedAddr: ""
                },
                 
                init: function(){
                    var _this = this;
     
                    _this.default();
     
                    _this.initLocation().then(function(result){
                        //清除掉默认的markerDefault
                        _this.com.map.clearOverlays()
     
                        var marker = result.mk;
                        var point = result.pt;
     
                        //取得当前位置的名字
                        _this.getAddrAccordingPoint(point).then(function(res){
                            _this.changeInfoWindowContent(res)
                            //打开信息窗体
                            _this.com.map.openInfoWindow(_this.com.infoWindow, point); 
                        });
                        
                        //绑定拖动结束事件,获取经纬度
                        marker.addEventListener("dragend", function(){
                            var curPoint = marker.getPosition();
                            console.log(curPoint)   
                            //取得拖动后当前位置的名字
                            _this.getAddrAccordingPoint(curPoint).then(function(res){
                                _this.changeInfoWindowContent(res)
                                //打开信息窗体
                                _this.com.map.openInfoWindow(_this.com.infoWindow, curPoint); 
                            });
                        });
                        marker.addEventListener("click", function(){ 
                            var curPoint = marker.getPosition();
                            _this.getAddrAccordingPoint(curPoint).then(function(res){
                                _this.changeInfoWindowContent(res)
                                //打开信息窗体
                                _this.com.map.openInfoWindow(_this.com.infoWindow, curPoint); 
                            })
                        });
                    })
                },
     
                //默认打开地图的初始状态设置
                default: function(){
                    var _this = this;
                    var point = new BMap.Point(114.062048, 22.54579);
                    // 设置初始化地图,设置中心点坐标和地图级别
                    _this.com.map.centerAndZoom(point, 12); 
     
                    //设置初次打开时,markerDefault,定位初始完毕会被销毁
                    var markerDefault = new BMap.Marker(point);
                    _this.com.map.addOverlay(markerDefault);
                    markerDefault.setIcon(_this.com.icon);
     
                    //设置信息窗体宽度
                    _this.com.infoWindow.setWidth(220);
                },
     
                //獲取定位初始化地圖
                initLocation: function (){
                    var _this = this;
                    return new Promise(function(resolve, reject){
                        new BMap.Geolocation().getCurrentPosition(function(r){
                            var lat = r.latitude;
                            var long = r.longitude;
                            var point = new BMap.Point(long, lat)
     
                            var marker = new BMap.Marker(point);
                            marker.setOffset(_this.com.iconOffsetSize)
                            marker.setIcon(_this.com.icon);
                            marker.setAnimation(BMAP_ANIMATION_BOUNCE); // 图标跳动, 只是用pc端,移动端失效
                            var initObj = {
                                pt: point,
                                mk: marker
                            }
     
                            // 将标注添加到地图中
                            _this.com.map.addOverlay(marker);
                             
     
                            //允许拖动           
                            marker.enableDragging();
                            //不允许被clearOverlays方法清除
                            marker.disableMassClear();
     
                            //地图指向当前的点(平移动画)
                            _this.com.map.panTo(point);
                            // 初始化地图,设置中心点坐标和地图级别
                            _this.com.map.centerAndZoom(point, 16); 
     
                            resolve(initObj);
                        })
                    })
                },
     
                //根据经纬度解析出位置的名称
                getAddrAccordingPoint: function(point){
                    var _this = this;
                    return new Promise(function(resolve, reject){
                        new BMap.Geocoder().getLocation(point, function(result){     
                            if (result){     
                                if(!!result.surroundingPois[0]){
                                    _this.com.chosedAddr = result.address + " " +result.surroundingPois[0].title; 
                                }else{
                                    _this.com.chosedAddr = result.address; 
                                }
                                resolve(_this.com.chosedAddr)
                            }     
                        });
                    })
                },
     
                //添加标注地址信息
                changeInfoWindowContent: function(content){
                    var _this = this;
                    _this.com.infoWindow.setContent(content);
                }
            };
     
            //开始地图
            mapObj.init();
     
            // document.getElementById('chosedBtn').addEventListener('click', function(){
            //     location.href = '<{:U("Channel/addChannelFollowLog")}>?address='+mapObj.com.chosedAddr
            // },false)   
             
        })()
    </script>
    </html>
    

    在这里插入图片描述

    展开全文
  • const arr = ddd(-50, 0, size, 23) // 自己写的一段计算六边形坐标的函数来获取二维的坐标点 // 传入球的半径及得到的二维坐标点 function getXYZ (r, arr) { const dataSet = []; const L = 2 * Math.PI * r; // ...

    难点在于怎样将二维六边形坐标转到三维球面坐标上
    const arr = ddd(-50, 0, size, 23) // 自己写的一段计算六边形坐标的函数来获取二维的坐标点

    // 传入球的半径及得到的二维坐标点
    function getXYZ (r, arr) {
    const dataSet = [];
    const L = 2 * Math.PI * r; // 算出圆周长
    const W = L * 1.70; //定义球面铺开之后的宽高,至于为什么要乘以或者除以这些数,还在研究当中
    const H = L / 3.5;
    for (let i = 0; i < arr.length; i += 1) {
    const x = (360 / W) * arr[i].x - 180;
    const y = (180 / H) * arr[i].y - 90;
    dataSet.push({x: x, y: y})
    }
    return dataSet;
    } // 这样就拿到了二维坐标对应到球面的坐标,不清楚算不算经纬度

    // 大球转换经纬度坐标(coord:弧度)
    // 最后就是将坐标带入函数算出对应球面的坐标
    function bigLatlngToXYZ® {
    const sphereArray = [];
    for (let i = 0; i < dataSet.length; i += 1) {
    let lat = dataSet[i].x;
    let lng = dataSet[i].y;
    const phi = ((90 - lat) * Math.PI) / 180;
    const theta = ((180 - lng) * Math.PI) / 180;
    const x = r * Math.sin(phi) * Math.cos(theta);
    const y = r * Math.cos(phi);
    const z = r * Math.sin(phi) * Math.sin(theta);

      sphereArray.push({ x: x, y: y, z: z });
    }
    return sphereArray;
    

    }

    展开全文
  • //建立自己新建对象my1 if(my1.exec()==QDialog::Accepted) //利用Accepted 信号判 断enterBtn 是否被按下 { w.show(); //如果被按下,显示主窗口 return a.exec(); //程序一直执行,直到主窗口 关闭 } else ...
  • 如何知道自己的工程中调用哪几个DLL文件 第7章 磁盘路径与文件操作 如何获得系统的所有磁盘驱动器 怎样获得磁盘驱动器的序列号 如何判定驱动器的文件系统类型 如何获得磁盘空间信息 如何判定磁盘是光驱还是软驱 ...
  • 82.请问怎样象Winzip一样,给Win95自己的PopMenu中添加Item. 83.问如何在Tree空件上实现右健选中Item并下拉出菜单,如同VC5中的Workspce窗口. 84.我想在CDialog类中的树控件中响应右键弹起这一消息 85.怎样在程序中...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0110 使用Succ函数获取顺序类型表达式后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八进制 73 0112 如何将二进制转换为十进制 75 0113 如何将二进制转换为十六进制 76 0114 如何将十进制...
  • 0110 使用Succ函数获取顺序类型表达式后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八进制 73 0112 如何将二进制转换为十进制 75 0113 如何将二进制转换为十六进制 76 0114 如何将十进制...
  • 0110 使用Succ函数获取顺序类型表达式后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八进制 73 0112 如何将二进制转换为十进制 75 0113 如何将二进制转换为十六进制 76 0114 如何将十进制...
  • 0110 使用Succ函数获取顺序类型表达式后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八进制 73 0112 如何将二进制转换为十进制 75 0113 如何将二进制转换为十六进制 76 0114 如何将十进制...
  • 0110 使用Succ函数获取顺序类型表达式后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八进制 73 0112 如何将二进制转换为十进制 75 0113 如何将二进制转换为十六进制 76 0114 如何将十进制...
  • 0110 使用Succ函数获取顺序类型表达式后继 73 4.4 进制转换相关函数 73 0111 如何将二进制转换为八进制 73 0112 如何将二进制转换为十进制 75 0113 如何将二进制转换为十六进制 76 0114 如何将十进制...
  • 附录1 图形工具:怎样获取和安装OpenGL 附录2 计算机图形学数学基础 附录3 有用类、例种以及SDL 附录4 分形和曼德布洛特集合 附录5 相对性和海龟绘图 书摘 第1章 计算机图形学概述  本章学习目标  纵览计算机...
  • Delphi5开发人员指南

    热门讨论 2012-07-18 16:51:14
    5.6 发送自己的消息 120 5.6.1 Perform() 120 5.6.2 sendMessage()和PostMessage() 120 5.7 非标准的消息 121 5.7.1 通知消息 121 5.7.2 VCL内部的消息 122 5.7.3 用户自定义的消息 122 5.8 一个消息系统的剖析:VCL...
  • 第一次看到“逆向工程”这个词是在2001年《机械工程学报》上一篇文章中,主要是讲用三坐标测量仪测量产品中各个部件三维尺寸并在计算机中快速建模、进而反推其设计思想和基本设计原则。第一次使用逆向工程工具...
  • reversing :逆向工程解密

    热门讨论 2012-09-04 11:40:49
    第一次看到“逆向工程”这个词是在2001年《机械工程学报》上一篇文章中,主要是讲用三坐标测量仪测量产品中各个部件三维尺寸并在计算机中快速建模、进而反推其设计思想和基本设计原则。第一次使用逆向工程工具...
  • 获取更多帮助............................................................................................... 14 使用 IDL 命令............................................................................
  • Microsoft C# Windows程序设计(上下册)

    热门讨论 2011-08-05 10:28:13
    12.8 绘制自己的按钮 12.9 设置锚点 12.10 永久停靠 12.11 窗体的子对象 12. 12 z层叠顺序 12.13 复选框 12.14 三状态复选框 12.15 标签控件 12.16 制表位和tab键控制顺序 12.17 标识控件 12.18...
  • C++MFC教程

    热门讨论 2013-05-21 13:37:15
    CPoint:用来表示一个点的坐标,有两个成员变量:x y。 可以和另一个相加。 CString:用来表示可变长度的字符串。使用CString可不指明内存大小,CString会根据需要自行分配。下面介绍几个成员函数: GetLength ...
  • 261 创建自己的变量类型:typedef关键字 262 理解变量的作用域 263 理解左值(1value) 264 理解NULL 265 理解void类型 266 理解指向变量的指针 267 声明和初始化指向变量的指针 268 理解间接操作:获得指针所指向的值...
  • 261 创建自己的变量类型:typedef关键字 262 理解变量的作用域 263 理解左值(1value) 264 理解NULL 265 理解void类型 266 理解指向变量的指针 267 声明和初始化指向变量的指针 268 理解间接操作:获得指针所指向的值...
  • 261 创建自己的变量类型:typedef关键字 262 理解变量的作用域 263 理解左值(1value) 264 理解NULL 265 理解void类型 266 理解指向变量的指针 267 声明和初始化指向变量的指针 268 理解间接操作:获得指针所指向的值...
  • 24 定义自己的数据类型 25 理解运算符 26 赋值运算符 27 理解一元运算符 28 理解算术运算符 29 其他运算符 30 编译器是怎样计算表达式的 31 使用括号组合运算符 32 理解C/C++的关键字 33 编译程序引导语句 34 介绍...
  • 10.1.5 显示从网络资源获取的图像 260 10.1.6 获取Android网络状态 262 10.2 使用WebView浏览Web 263 小结 265 参考资料和更多信息 266 第11章 使用位置服务(LBS)API 267 11.1 使用全球定位服务(GPS) ...
  • Reversing:逆向工程揭密

    热门讨论 2010-06-21 17:27:22
    第一次看到“逆向工程”这个词是在2001年《机械工程学报》上一篇文章中,主要是讲用三坐标测量仪测量产品中各个部件三维尺寸并在计算机中快速建模、进而反推其设计思想和基本设计原则。第一次使用逆向工程工具...
  • 第一次看到“逆向工程”这个词是在2001年《机械工程学报》上一篇文章中,主要是讲用三坐标测量仪测量产品中各个部件三维尺寸并在计算机中快速建模、进而反推其设计思想和基本设计原则。第一次使用逆向工程工具...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

怎样获取自己的坐标点