以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  XXXXX微信里获取用户地理位置,有没有比较好的贴子,推荐下,谢了!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101097)

--  作者:zhangjian222200
--  发布时间:2017/5/25 0:33:00
--  XXXXX微信里获取用户地理位置,有没有比较好的贴子,推荐下,谢了!
如题:
[此贴子已经被作者于2018/2/8 18:10:38编辑过]

--  作者:有点蓝
--  发布时间:2017/5/25 8:38:00
--  
方式1,被动获取:http://www.foxtable.com/mobilehelp/scr/0187.htm


--  作者:有点色
--  发布时间:2017/5/25 8:47:00
--  

 用js-sdk获取即可

 

https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.8138827698946394#dlwz

 

http://www.foxtable.com/mobilehelp/scr/0247.htm


--  作者:zhangjian222200
--  发布时间:2017/6/1 14:56:00
--  
如果用js-sdk,下面红框里的内容,需要设置吗?

图片点击可在新窗口打开查看此主题相关图片如下:qq图片2017060114551555.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/6/1 14:56:32编辑过]

--  作者:有点色
--  发布时间:2017/6/1 15:20:00
--  

 如果你用微信内置的浏览器,可以获取地理位置,但你就要接入微信功能了......

 

 直接用下面的方法吧,把代码保存为js,引入调用。 

 

 

           function getLocation(){
               var options={
                   enableHighAccuracy:true,
                   maximumAge:1000
               }
               if(navigator.geolocation){
                   //浏览器支持geolocation
                   navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
                  
               }else{
                   //浏览器不支持geolocation
               }
           }

           //成功时
           function onSuccess(position){
               //返回用户位置
               //经度
               var longitude =position.coords.longitude;
               //纬度
               var latitude = position.coords.latitude;
               alert("成功");
        alert(longitude + "   " + latitude);

           }
 

           //失败时
           function onError(error){
               switch(error.code){
                   case 1:
                   alert("位置服务被拒绝");
                   break;

                   case 2:
                   alert("暂时获取不到位置信息");
                   break;

                   case 3:
                   alert("获取信息超时");
                   break;

                   case 4:
                    alert("未知错误");
                   break;
               }

           }

           getLocation();


--  作者:zhangjian222200
--  发布时间:2017/6/1 16:27:00
--  
wb.insertHTML("<script>getLocation()</script>")  ’如何在无操作情况下,就是进入网页的时候,在网页内调用js信息,如何将返回的经纬度,转换为地址信息保存?

wb.AppendHTML("<script src=\'./lib/getplace.js\'></script>") \'将楼上代码放在getplace.js里面
[此贴子已经被作者于2017/6/1 16:46:45编辑过]

--  作者:有点色
--  发布时间:2017/6/1 16:53:00
--  

 你就需要用到百度地图api了

 

 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=72530&skin=0

 


--  作者:有点色
--  发布时间:2017/6/1 16:59:00
--  

现在可以这样写

 

Dim 纬度 As Double = 39.91064
Dim 经度  As Double = 116.39925

Dim ur As String = "http://api.map.baidu.com/geocoder/v2/?ak=hAaa2NLELKdAIfMhMjnuEgi1&output=json&location=" & 纬度 & "," & 经度
Dim hc As new HttpClient(ur)
Dim jo = JObject.Parse(hc.GetData)
msgbox(jo.Tostring)
msgbox(jo("status"))
msgbox(jo("result")("formatted_address"))


--  作者:qwz405
--  发布时间:2017/6/1 21:06:00
--  
谢谢老师~

作个标记,后续需要用到这个功能。

--  作者:zhangjian222200
--  发布时间:2017/6/1 22:23:00
--  
问题见下面粉色内容:
           function getLocation(){
               var options={
                   enableHighAccuracy:true, 
                   maximumAge:1000
               }
               if(navigator.geolocation){
                   //浏览器支持geolocation
                   navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
                   
               }else{
                   //浏览器不支持geolocation
               }
           }
           //成功时
           function onSuccess(position){
               //返回用户位置
               //经度
               var longitude =position.coords.longitude;
               //纬度
               var latitude = position.coords.latitude;
               alert("成功"); 
               alert(longitude + "   " + latitude);
               var result = sendAjaxText(longitude + "|" + latitude,"getplace.htm","",false); 
               ’1.将经度、纬度发送到网页getplace.htm保存,这样可以吗?

               //var result = sendAjaxText(document.getElementById("isj").value,"fasongduanxin.htm","",false);
           }
 
           //失败时
           function onError(error){
               switch(error.code){
                   case 1:
                   alert("位置服务被拒绝");
                   break;
                   case 2:
                   alert("暂时获取不到位置信息");
                   break;
                   case 3:
                   alert("获取信息超时");
                   break;
                   case 4:
                    alert("未知错误");
                   break;
               }
           }
           getLocation();

调用
wb.insertHTML("<script>getLocation()</script>")  
2.可以这样调用js函数getLocation()吗?也就是在无点击等操作情况下,调用js信息,可以?

getplace.htm代码:
Dim 经纬度 As String = e.PlainText ’3.如何将(longitude + "|" + latitude分开及赋值?

Dim 纬度 As Double = 39.91064
Dim 经度  As Double = 116.39925

Dim ur As String = "http://api.map.baidu.com/geocoder/v2/?ak=hAaa2NLELKdAIfMhMjnuEgi1&output=json&location=" & 纬度 & "," & 经度
Dim hc As new HttpClient(ur)
Dim jo = JObject.Parse(hc.GetData)
msgbox(jo.Tostring)
msgbox(jo("status"))
msgbox(jo("result")("formatted_address"))

[此贴子已经被作者于2017/6/1 22:43:33编辑过]