91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么通過redis實現地標存儲及范圍坐標點查詢功能

發布時間:2021-08-16 09:36:52 來源:億速云 閱讀:156 作者:chen 欄目:開發技術

本篇內容主要講解“怎么通過redis實現地標存儲及范圍坐標點查詢功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么通過redis實現地標存儲及范圍坐標點查詢功能”吧!

1.首先拿到百度地圖開發密鑰,進入百度地圖開放平臺:百度地圖開放平臺

(1)選擇開發文檔>>web開發>>JavaScript API

怎么通過redis實現地標存儲及范圍坐標點查詢功能

(2)需要申請密鑰才可使用,點擊申請密鑰(申請密鑰的IP白名單可以用‘ * '代替,所有網站都可用,但安全性很差,所有人都可以抓到這個ak來使用,也可以根據自己的應用場景來設置) 

怎么通過redis實現地標存儲及范圍坐標點查詢功能

 2,Controller代碼

public class MapController : Controller
    {
        //map視圖
        public ActionResult Index()
        {
            return View();
        }
        /// <summary>
        /// 存入坐標點
        /// </summary>
        /// <param name="Longitude">經度</param>
        /// <param name="Latitude">緯度</param>
        /// <param name="Name">名稱</param>
        /// <returns></returns>
        public ActionResult Set(string Longitude, string Latitude, string Name)
        {
            //初始化redis
            CSRedis.CSRedisClient cSRedis = new CSRedis.CSRedisClient("192.168.56.131:6380,password=123456,defaultDatabase = 0");
            RedisHelper.Initialization(cSRedis);
 
            decimal Lng = decimal.Parse(Longitude);
            decimal Lat = decimal.Parse(Latitude);
            //存入坐標點
            var flag = RedisHelper.GeoAdd("zhongguo", Lng, Lat, Name);
 
            if (flag == true)
            {
                return Json(new { code = 1, message = "成功" });
            }
            else
            {
                return Json(new { code = 0, message = "提交失敗" });
            }
        }
        /// <summary>
        /// 獲取半徑范圍內的其他坐標
        /// </summary>
        /// <param name="lng">經度</param>
        /// <param name="lat">緯度</param>
        /// <param name="ran">半徑</param>
        /// <returns></returns>
        public ActionResult Get(string lng, string lat, string ran)
        {
            //初始化redis
            CSRedis.CSRedisClient cSRedis = new CSRedis.CSRedisClient("192.168.56.131:6380,password=123456,defaultDatabase = 0");
            RedisHelper.Initialization(cSRedis);
 
            decimal Lng = decimal.Parse(lng);
            decimal Lat = decimal.Parse(lat);
            decimal Ran = decimal.Parse(ran);
            var K = CSRedis.GeoUnit.km;
            //獲取周邊坐標點
            (string member, decimal dist, decimal longitude, decimal latitude)[] list_ = RedisHelper.GeoRadiusWithDistAndCoord("zhongguo", Lng, Lat, Ran, K);
            return Json(list_, JsonRequestBehavior.AllowGet);
        }
    }

3,view代碼(注意填寫上面申請的密鑰)

@{
    Layout = null;
}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>地圖展示</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <style>
        body,
        html,
        #container {
            overflow: hidden;
            width: 100%;
            height: 100%;
            margin: 0;
            font-family: "微軟雅黑";
        }
 
        .info {
            z-index: 999;
            width: auto;
            min-width: 22rem;
            padding: .75rem 1.25rem;
            margin-left: 1.25rem;
            position: fixed;
            top: 1rem;
            background-color: #fff;
            border-radius: .25rem;
            font-size: 14px;
            color: #666;
            box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
        }
    </style>
    <link href="~/Content/button.css" rel="external nofollow"  rel="stylesheet" />
    <script src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=你的密鑰"></script>
    <script src="~/Scripts/jquery-3.4.1.min.js"></script>
    <script>
        function bing() {
        var lng = $("#lng").val();
        var lat = $("#lat").val();
        var ran = $("#ran").val();
 
        $.ajax({
            url: "@Url.Action("Get", "Map")",
            data: {
                lng: lng,
                lat: lat,
                ran:ran
            },
            type: "post",
            dataType: "json",
            success: function (data) {
                console.log(data)
 
                if (data != null) {
                    for (var i = 0; i < data.length; i++) {
                        var new_point = new BMapGL.Point(data[i]['Item3'], data[i]['Item4']);
                        console.log(data[i]['Item3'])
                        console.log(data[i]['Item4'])
                        var marker = new BMapGL.Marker(new_point);  // 創建標注
                        map.addOverlay(marker);              // 將標注添加到地圖中
                        map.panTo(new_point);
                    }
                }
            }
        });
        }
    </script>
</head>
<body>
    <div id="container"></div>
    <input type="text" id="ti" name="name" value="" placeholder="請輸入名稱" class="info" />
    <div id="re">
        經度:
        <input type="text" id="lng" name="name" value="" />
        緯度:
        <input type="text" id="lat" name="name" value="" />
        范圍:
        <input type="text" id="ran" name="name" value="" />
        <button id="reu" name="name" onclick="bing()" value="查詢">查詢</button>
    </div>
    <input type="hidden" name="GetLng" value="" />
    <div id="allmap"></div>
</body>
</html>
<script>
    var map = new BMapGL.Map('container'); // 創建Map實例
    map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 12); // 初始化地圖,設置中心點坐標和地圖級別
    map.enableScrollWheelZoom(true); // 開啟鼠標滾輪縮放
</script>
<script>
    var map = new BMapGL.Map('container');
    map.centerAndZoom(new BMapGL.Point(116.404, 39.928), 15);
    map.enableScrollWheelZoom(true);
    map.addEventListener('click', function (e) {
        alert( + e.latlng.lng + ',' + e.latlng.lat);
        if (confirm("是否添加此地址")) {
        var Longitude = e.latlng.lng;
        var Latitude = e.latlng.lat;
        var Name = $("#ti").val();
        $.ajax({
            url: "@Url.Action("Set", "Map")",
            data: {
                Longitude: Longitude,
                Latitude: Latitude,
                Name: Name
            },
            type: "post", 
            dataType: "json",
            success: function (data) {
                if (data.code) {
                    alert(data.message);
                }
                else {
                    alert(data.message);
                }
            }
        });
      }
    });
</script>
<script type="text/javascript">
        // 百度地圖API功能
</script>

到此,相信大家對“怎么通過redis實現地標存儲及范圍坐標點查詢功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶风县| 鹤峰县| 田阳县| 繁峙县| 临漳县| 五家渠市| 渝北区| 鄱阳县| 墨玉县| 平邑县| 石台县| 壤塘县| 襄汾县| 竹溪县| 华阴市| 出国| 广德县| 宜昌市| 铁力市| 江西省| 铜梁县| 遵义县| 南江县| 三亚市| 山阳县| 丰都县| 仁化县| 宁陵县| 万安县| 和静县| 鲁甸县| 舞钢市| 北辰区| 阿坝县| 牡丹江市| 西盟| 雷州市| 乌鲁木齐县| 宁远县| 武邑县| 香格里拉县|