共享位置信息的小程序。
3.21 实现动态加载 markers
3.22 增加login & 通过服务器获取 openid
3.23 从服务器获取最新位置并更新 marker 位置
坑:
很多 function 里,需要 bind(this)。
map 的 translateMarker 方法,在动态加载 marker 时,需要等大概10秒以上才能成功找到markerId ,因为这个问题被坑了好久。
微信小程序代码:https://github.com/endpang/maps.cc
服务端代码
get.php
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6688); $redis->select(4); /**/ file_put_contents("xx.log","[get]".json_encode($_REQUEST).PHP_EOL,FILE_APPEND); $_REQUEST["id"] = 1; $_REQUEST["latitude"] = round($_REQUEST["latitude"],4); $_REQUEST["longitude"] = round($_REQUEST["longitude"],4); $result = [ 'status' => 1, 'count' => 1, 'friend' => [$_REQUEST], ]; file_put_contents("xx.log","[response]".json_encode($result).PHP_EOL,FILE_APPEND); //*/ echo json_encode($result);
test.php
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6688); $redis->select(4); /** $result = [ 'status' => 1, 'userInfo' => "test", ]; //*/ $file = file_get_contents("https://api.weixin.qq.com/sns/jscode2session?appid=xxx&secret=xxx&js_code=".$_REQUEST['code']."&grant_type=authorization_code"); $user_array = json_decode($file,true); //file_put_contents("xx.log",$file); if(!empty($user_array["openid"])){ $result["status"] = 1; $result["userInfo"]["openid"] = $user_array["openid"]; $redis->set("user_".$user_array["openid"],$file); } echo json_encode($result);