1. 程式人生 > >百度地圖api 實時顯示 每個人的位置和頭像

百度地圖api 實時顯示 每個人的位置和頭像

UserMapController.class.php

<?php
namespace Home\Controller;
use Think\Controller;
class UserMapController extends Controller {
  //實時顯示活動中使用者的位置介面
    public function showplace(){
        $activity_id = I('post.activity_id/d');
        $uids = M('user_join')->where(array('activity_id'=>$activity_id,'status'=>1))->field('uid')->order('id asc')->select();


        foreach ($uids as $value) {
            $user_map = M('user_map')->where(array('uid'=>$value['uid']))->field('lng,lat')->find();
            if(!empty($user_map)){
                $position[] = $user_map;
                $headimgurl = M('user')->where(array('id'=>$value['uid']))->getField('headimgurl');
                $images[] = '/Uploads/headimg/'.$headimgurl.'_small.jpg';
            }
        }


        //加上管家圖示
        $activity = M('activity')->where(array('id'=>$activity_id))->field('manager_id')->find();
        $position[count($position)] = M('user_map')->where(array('uid'=>$activity['manager_id']))->field('lng,lat')->find();
        $images[count($images)] = '/Public/images/manager.jpg';


        // $position[count($position)] = M('activity_address')->where(array('id'=>$activity['address_id']))->field('lat,lng')->find();
        // $images[count($images)] = '/Public/images/logo.jpg';


        foreach ($position as $value) {
            if($value){
                $arr[] = array_values($value);
            }
        }
        
        $pos_json = json_encode($arr);
        $img_json = json_encode($images);
        $data['pos'] = $pos_json;
        $data['img'] = $img_json;
        $this->ajaxreturn($data);
    }


    //使用者地理位置資訊
    public function place(){
        $activity_id = I('activity_id/d');
        $activity = M('activity')->where(array('id'=>$activity_id))->field('address_id')->find();
        $position = M('activity_address')->where(array('id'=>$activity['address_id']))->field('lat,lng,address_name')->find();
        $this->assign('position',$position);
        $this->assign('activity_id',$activity_id);
        $this->display();
    }
}

place.html

<!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:"微軟雅黑";}
        #l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}
        #r-result{height:100%;width:20%;float:left;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的ak"></script>
    <script src="/Public/js/libs/jquery-3.1.1.min.js"></script>
    <title>xxxx</title>
</head>
<body>
    <div id="allmap" style="min-width: 100%;min-height: 100%;"></div>
</body>
</html>
<script type="text/javascript">
    $(function(){
        var activity_id = '{$activity_id}';
        function myInterval(){
            $.ajax({
                url:"{:U('Home/UserMap/showplace')}",
                data:{activity_id:activity_id},
                type:'post',
                dataType:'json',
                success:function(data){
                    var jsondata = eval('('+data.pos+')'); 
                    var jsonimgs = eval('('+data.img+')'); 
                    loading(jsondata,jsonimgs);
                 }
            })
        }
       settimeout(myInterval()); 


        function loading(jsondata,jsonimgs){
            //GPS座標
            var my_lng = '{$position.lng}';
            var my_lat = '{$position.lat}';
            var address_name = '{$position.address_name}';
            var ggPoint = new BMap.Point(my_lng ,my_lat);
            //地圖初始化
            var bm = new BMap.Map("allmap");
            bm.centerAndZoom(ggPoint, 15);
            bm.addControl(new BMap.NavigationControl());
            


            var points = [];
            for (var i = 0; i < jsondata.length; i++) {
                points.push(new BMap.Point(jsondata[i][0],jsondata[i][1]));
            }
            points.push(ggPoint);
            jsonimgs.push("/Public/images/timg.png");


            //座標轉換完之後的回撥函式
            translateCallback = function (data){
              if(data.status === 0) {
                for (var i = 0; i < data.points.length; i++) {
                    var myIcon = new BMap.Icon(jsonimgs[i], new BMap.Size(60,60));
                    var marker = new BMap.Marker(data.points[i],{icon:myIcon});
                    bm.addOverlay(marker);
                }
              }
            }
            setTimeout(function(){
                var convertor = new BMap.Convertor();
                convertor.translate(points, 1, 5, translateCallback)
            }, 1000);
        }
    })
</script>

相關推薦

地圖api 實時顯示 每個位置頭像

UserMapController.class.php <?php namespace Home\Controller; use Think\Controller; class UserMapController extends Controller {   //實

地圖API JavaScript顯示人員分布信息

mem tel 部分 lin async -m .ajax var cti 效果圖貼下: js代碼貼下: <body> <div id="div-map"></div></body></html><scr

地圖API定位+顯示位置

col mar 位置 百度地圖api fail true acc ntp 引入 1. 先在需要嵌入地圖的頁面引入map.js <script src="http://api.map.baidu.com/api?v=2.0&ak=你的秘鑰"></s

Android 使用地圖API顯示地圖

  http://lbsyun.baidu.com/ 進入百度地圖開放平臺,登入百度賬號 選擇應用型別為Android SDK 釋出版SHA1,和開發板SHA1的獲取方法為: 找到電腦上的.android路徑,一般都在C盤使用者目錄下, 有的

地圖API應用之——利用定位SDK地圖SDK來進行定位顯示當前位置

在專案開發中,尤其是O2O或者體育運動類專案的APP開發過程中,經常會出現利用GPS定位獲取當前位置並在地圖上顯示的情況,下面就來結合實際的例子來簡要介紹一下如何實現這個功能,使用的是百度地圖最新的地圖SDK(baidumapapi_v2_4_1)和定位SDK(locSDK

使用html5獲取當前手機的經緯度,並接入地圖API,查詢出當前位置

api detail attribute spa rip coord component per bar 最近項目需要,稍微研究一下html5獲取當前地理位置的問題。 獲取當前位置的經緯度很簡單,一句代碼就搞定 [javascript] view plain cop

使用者Ip地址地圖api介面獲取使用者地理位置(經緯度座標,城市)

<?php   //獲取使用者ip(外網ip 伺服器上可以獲取使用者外網Ip 本機ip地址只

使用地圖api實現定位及選擇位置功能

之前使用過一些第三方的地圖api,最後還是覺得百度的比較好用,剛好最近做一個專案,需要用到地圖的功能,也比較簡單,就是獲取當前位置,然後可以自己手動在地圖上選擇位置,把經緯度丟給服務端。我用的就是百度地圖 下面就開始做了,註冊開發者賬號、申請key、下載SDK什麼的,就

地圖API一:根據標註點坐標範圍計算顯示縮放級別zoom自適應顯示地圖

var spa get bsp pan nts viewport 百度 getview 百度地圖中根據頁面中的point,自動設置縮放級別和視圖中心,將所有的point在視圖範圍內展示。 var points = [point1, point2,point3];

地圖API二:根據標註點坐標範圍計算顯示縮放級別zoom自適應顯示地圖

max zoom 天地圖 功能 center 經緯 通過 極值 template 原文:百度地圖API二:根據標註點坐標範圍計算顯示縮放級別zoom自適應顯示地圖 版權聲明:本文為博主原創文章,轉載請註明出處。 https://blo

地圖api定位,根據經緯度顯示當前城市名

當前城市:<span id="pro_num">鄭州</span> <div id="allmap"></div> <script type="text/javascript" src="http://api.map.baidu.com/

地圖api--拖動地圖顯示經緯度與顯示當前位置

一.首先引入所申請的ak金鑰<script type="text/javascript" src="http://api.map.baidu.com/api?ak=PlhFWpA02aoURjAOpnWcRGqw7AI8EEyO&v=2.0&services=false"><

地圖api之固定標記點跳動,點選顯示詳情

一.首先引入所申請的ak金鑰<script type="text/javascript" src="http://api.map.baidu.com/api?ak=PlhFWpA02aoURjAOpnWcRGqw7AI8EEyO&v=2.0&services=false"><

地圖API三:實時軌跡動態展現

上一個文章講了如何根據標註點座標範圍計算顯示縮放級別zoom自適應顯示地圖。 本文講實時動態軌跡的實現。 先在上面畫一些初始的標註點和軌跡線。然後再動態生成一些點。 然後我們隨機生成新的軌跡點並顯

地圖api 自定義駕車線路規劃 車輛實時定位

var coordinateArr = [] //定義一個全聚德所有的繪製線路點座標陣列 var icona = []; //定義標註圖示陣列 var zhandianpoint = []; //定義站點座標陣列 var map = new BMap.Map("allmap"

地圖api在Html中顯示,在jsp頁面中不顯示解決方法

在jsp頁面中顯示如下但是在html中正常顯示。原來的程式碼如下<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true">&

如何用地圖api地圖顯示自己位置以及資料庫裡的位置

先定位自己位置 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="http://api.m

地圖API ajax非同步獲取資料庫資訊 頁面顯示多點標註標註框

    var map = new BMap.Map("allmap");          // 建立地圖例項       var point = new BMap.Point(108.955665, 34.274037);  // 建立點座標       map.cen

地圖api(javascript)--高亮顯示所選行政區劃

var map = new BMap.Map("map_container"); function initMap(map, "長沙市") {     var point = new BMap.Point(112.987402, 28.201509);  // 建立點座

Android Studio中使用地圖API,不顯示地圖的問題解決辦法

一年前用過這個,當時也遇到很多問題,後面慢慢解決了,然而沒有總結遇到的問題,現在重新做這個,又浪費了一天時間終於解決了崩潰和不顯示地圖的問題,記錄一下 一丶將百度地圖SDK新增到專案中 進入這個網址點選自定義下載之後,選擇你要的功能,然後點下面的開