用户
搜索
  • TA的每日心情

    2018-1-20 21:59
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看

    i春秋作家

    老蛋总管

    Rank: 7Rank: 7Rank: 7

    14

    主题

    61

    帖子

    281

    魔法币
    收听
    0
    粉丝
    5
    注册时间
    2016-11-16

    i春秋签约作者

    发表于 2017-9-1 11:42:24 101120714
    本帖最后由 wangxiulin 于 2017-9-2 20:42 编辑

    记得前段时间有人做过一个,也是源码,问题感觉还是不少的。传送门
    今天再来说一下这个。

    首先我用的为腾讯云学生机一元服务器,自己搭建了一个网站空间。一定开启SSL。我昨天测试的如果不开启HTTPS的话可能会导致定位功能用不了。

    可以先来打开我的网站看看:https://hacker.blue,现在Yes 666为记录保存成功。

    在这里说一下,域名如果没有备案的话用腾讯一元服务器是用不了的,会自动检测域名是否备案,如果想不备案的话可以开启SSL,这样就不会提示了。
    因为腾讯云的封锁策略为80端口以及其他端口,但是,443端口是封不了的。至于阿里云,前些时候封锁策为80端口以及其他的端口,443端口可用。但是现在不知道情况了。毕竟

    这里的网站将经纬度保存的数据到服务器数据库中。

    QQ截图20170901112954.png

    得到经纬度,用网站来查询一下就得到位置了。误差基本很小。我自测群内测,误差还是非常小的。

    网站查询:http://www.gpsspg.com/maps.htm

    代码开始:

    index.html

    [HTML] 纯文本查看 复制代码
    <!DOCTYPE html>
    <html>
    <head>
    <script src="/jquery-1.11.1.min.js">
    </script>
    <script>
    $(document).ready(function(){
    getLocation();
    
    function getLocation()
    {
            if (navigator.geolocation)
            {
                    navigator.geolocation.getCurrentPosition(showPosition,showError);
            }
            else
            {
                    alert("该浏览器不支持定位");
            }
    }
    function showPosition(position)
    {
    $.get("/conn.php?weizhi=" + position.coords.latitude + "," + position.coords.longitude ,function(data,status){
        alert("Yes,666");
    });
    }
    function showError(error)
    {
            switch(error.code) 
            {
                    case error.PERMISSION_DENIED:
            alert("用户拒绝对获取地理位置的请求");
                            break;
                    case error.POSITION_UNAVAILABLE:
            alert("位置信息是不可用的");
                            break;
                    case error.TIMEOUT:
            alert("请求用户地理位置超时");
                            break;
                    case error.UNKNOWN_ERROR:
            alert("未知错误");
                            break;
            }
    }
    });
    </script>
    </head>
    <body>
    <p>I want to get your seat</p>
    </body>
    </html>
    


    下载:

    上面所链接的jquery-1.11.1.min.js
    点击下面下载:

    https://hacker.blue/jquery-1.11.1.min.js


    conn.php

    [PHP] 纯文本查看 复制代码
    <?php
    //连接数据库
    date_default_timezone_set('Asia/Shanghai');
    $time = date('Y-m-d H:i:s',time()); 
    $weizhi = $_GET['weizhi'];
    $con = mysql_connect("localhost","root","root"); //帐号密码
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("weizhi_db", $con); //选择数据库 weizhi_db修改为你自己的数据库
    mysql_query("INSERT INTO weizhi (jingwei, time) VALUES ('$weizhi', '$time')");
    mysql_close($con);
    ?>

    在服务器上创建一个数据库,数据库名为weizhi_db,表包为weizhi,下面为三个字段为Id,weizhi,time。Id自动递增。
    全部文件打包下载:

    下载.rar (32.49 KB, 下载次数: 237)
    博客:[url=http://hacker.blue]http://hacker.blue[/url]
    发表于 2017-9-2 20:31:00
    姐姐来总结一下啊。1、不要纠结http还是https,本文用https是因为域名没备案的情况下http在腾讯云上不能用。2、本文知识点只是一个函数:javascript的navigator. geolocation.getCurrentPositon(func_success, func_error, options)。其中func_success是获取位置成功会调用的回调函数,func_error是失败调用的回调函数,options是一个选项对象,除了func_success是必须的参数之外,其他两项是选填的。本文获取到coordinate对象,将其经纬度属性写入了数据库,实际上该对象还有一个accuracy属性,直接翻译过来很好理解,就是精度,单位米,最好也记入数据库。

    姐姐大二的时候用过百度和高德的接口,也尝试过直接使用这个,但是在不同浏览器上总是有点问题,并且精度太低,也就是说准确度太低,不知现在怎么样了
    使用道具 举报 回复
    发表于 2017-9-2 16:07:36
    本帖最后由 wangxiulin 于 2017-9-2 16:17 编辑
    风在指尖 发表于 2017-9-2 05:51
    屁,跟代码有关,和http 无关。 是我写代码的时候没写全OK?

    首先来说一下,我这个根本没有用到你的源码,我是通过学习HTML5的时候知道了这个有一个位置定位,采用的也是人家菜鸟之家的源码,借用了PHP改了一下,提交到数据库中保存了而已。我又没有用你的源码,只不过是你曾经说过HTML5有个定位而已。再说你的帖子里面代码本来就是有问题,在一些运行环境上面没有研究,又没有说。难道我就不能研究一下发出来了?这是什么逻辑?是否和https有无关系?发送位置我测试地方为微信以及QQ,两个很可惜都是失败,一直为拒绝,具体原因不详,而IOS 10对于获取地理位置信息做出了限制,所以我采用HTTPS这样一个折中办法,IOS以及Android都是可以用的。这也有问题?
    博客:[url=http://hacker.blue]http://hacker.blue[/url]
    使用道具 举报 回复
    发表于 2017-9-2 20:33:46
    柯西柯南柯北 发表于 2017-9-2 20:31
    姐姐来总结一下啊。1、不要纠结http还是https,本文用https是因为域名没备案的情况下http在腾讯云上不能用 ...

    顺便说一句,学好英语对你们理解力和记忆力很有帮助。有英语基础的话,很多东西懂得就会比别人快很多,优势大大的。另外,想学某领域的信息安全,必学相应的开发,理由也是懂了开发会在安全的理解和记忆上有很大的优势
    使用道具 举报 回复
    发表于 2017-9-2 20:32:43
    柯西柯南柯北 发表于 2017-9-2 20:31
    姐姐来总结一下啊。1、不要纠结http还是https,本文用https是因为域名没备案的情况下http在腾讯云上不能用 ...

    timg.jpg 大...大佬。 我倒是测试的时候,得到的经纬度还是比较精确的。
    博客:[url=http://hacker.blue]http://hacker.blue[/url]
    使用道具 举报 回复
    发表于 2017-9-1 19:24:56
    本帖最后由 wangxiulin 于 2017-9-1 19:33 编辑
    风在指尖 发表于 2017-9-1 18:25
    这不就是我写的经纬度定位么。。。。。。

    表哥,这玩意得是HTTPS才能用的啊。如果不是HTTPS一直会获取位置出错的。我看了你写的那个东西,一直找问题,最后发现网站不是HTTPS才导致不能使用 的。
    博客:[url=http://hacker.blue]http://hacker.blue[/url]
    使用道具 举报 回复
    发表于 2017-9-2 16:12:03
    本帖最后由 wangxiulin 于 2017-9-2 20:31 编辑
    风在指尖 发表于 2017-9-2 05:52
    还有,这是经纬度定位,不是GPS定位,麻烦你搞清楚什么是GPS

    关于GPS,实话说我也没有太大研究过是GPS定位,还是经纬度定位。
    放个知乎吧。
    https://www.zhihu.com/question/20473051
    博客:[url=http://hacker.blue]http://hacker.blue[/url]
    使用道具 举报 回复
    wangxiulin 发表于 2017-9-1 11:24
    表哥,这玩意得是HTTPS才能用的啊。如果不是HTTPS一直会获取位置出错的。我看了你写的那个东西,一直找问 ...

    屁,跟代码有关,和http 无关。 是我写代码的时候没写全OK?
    111111111
    使用道具 举报 回复
    发表于 2017-9-1 20:23:51
    说书人 发表于 2017-9-1 19:54
    一定要ssl的原理是啥

    微信端对于获取地理位置信息作出了限制,只有https的方式才能获取,至于QQ我反正是找人测试,也没有一个成功的。
    博客:[url=http://hacker.blue]http://hacker.blue[/url]
    使用道具 举报 回复
    感谢楼主分享.....
    使用道具 举报 回复
    发表于 2017-9-1 15:32:01
    感谢分享!
    使用道具 举报 回复
    发表于 2017-9-1 15:53:44
    小古帮顶,老大天下第一
    使用道具 举报 回复
    发表于 2017-9-1 18:25:08
    这不就是我写的经纬度定位么。。。。。。
    111111111
    使用道具 举报 回复
    发表于 2017-9-1 19:54:33
    一定要ssl的原理是啥
    使用道具 举报 回复
    发表于 2017-9-1 21:16:56
    感谢大佬分享
    使用道具 举报 回复
    发表于 2017-9-2 05:52:41
    还有,这是经纬度定位,不是GPS定位,麻烦你搞清楚什么是GPS
    111111111
    使用道具 举报 回复
    这思路可以
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册