zoukankan      html  css  js  c++  java
  • 百度地图之多点步行路径连线问题

    原文:http://www.cnblogs.com/wujy/p/3897501.html#undefined

    一:通过结合下面两个百度实例来实现我们所要求的功能;

    1:两点间步行实例:http://developer.baidu.com/map/jsdemo.htm#i6_1 

    复制代码
    <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 { 100%;height: 100%;overflow: hidden;margin:0;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
    <title>步行导航检索</title>
    </head>
    <body>
    <div id="allmap"></div>
    </body>
    </html>
    <script type="text/javascript">
    
    var map = new BMap.Map("allmap");
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
    var walking = new BMap.WalkingRoute(map, {renderOptions:{map: map, autoViewport: true}});
    walking.search("天坛公园", "故宫");
    </script>
    复制代码

    2:折线实例:http://developer.baidu.com/map/jsdemo.htm#c1_5

    复制代码
    <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 { 100%;height: 100%;overflow: hidden;margin:0;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
    <title>折线</title>
    </head>
    <body>
    <div id="allmap"></div>
    </body>
    </html>
    <script type="text/javascript">
    
    var map = new BMap.Map("allmap");
    var point = new BMap.Point(116.404, 39.915);
    map.centerAndZoom(point, 15);
    var polyline = new BMap.Polyline([
      new BMap.Point(116.399, 39.910),
      new BMap.Point(116.405, 39.920),
      new BMap.Point(116.425, 39.900)
    ], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
    map.addOverlay(polyline);
    </script>
    复制代码

    二:多点步行路径连线实例(完整的代码如下,都有相应说明,实例定义三个点)

    复制代码
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <style type="text/css">
            body, html
            {
                 100%;
                height: 100%;
                overflow: hidden;
                margin: 0;
            }
            #allmap
            {
                height: 50%;
                 40%;
                float: left;
                border-right: 2px solid #bcbcbc;
            }
            #r-result
            {
                height: 100%;
                 55%;
                float: left;
            }
        </style>
        <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nLpN5iKztxIWsPqgwsyrruUG"></script>
        <script type="text/javascript">
    
        </script>
    </head>
    <body>
        <input id="btn_show" type="button" value="button" />
        <div id="allmap">
        </div>
        <%--style="display:none"--%>
        <div id="r-result">
        </div>
    </body>
    </html>
    <script type="text/javascript">
        //定义集合用来存放沿线的坐标值
        var chartData = [];
        //加载地图
        var map = new BMap.Map("allmap");
        map.centerAndZoom(new BMap.Point(118.10000, 24.46667), 11);
        var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true} });
        var startpoint = new BMap.Point(118.112917, 24.435153);
        var endpoint = new BMap.Point(118.1086487, 24.439108);
        walking.search(startpoint, endpoint);
        //通过setSearchCompleteCallback回调事件可以把步行间的坐标信息获取
        walking.setSearchCompleteCallback(function (rs) {
            var pts = walking.getResults().getPlan(0).getRoute(0).getPath();
            for (var i = 0; i < pts.length; i++) {
                chartData.push(new BMap.Point(pts[i].lat, pts[i].lng));
            }
        });
        //另外两点的步行路线
        var walkings = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true} });
        var twoPoint = new BMap.Point(118.1286555, 24.4491888);
        walkings.search(endpoint, twoPoint);
        walkings.setSearchCompleteCallback(function (rs) {
            var pts = walkings.getResults().getPlan(0).getRoute(0).getPath();
            for (var i = 0; i < pts.length; i++) {
                chartData.push(new BMap.Point(pts[i].lat, pts[i].lng));
            }
        });
        //用来存放途经点的坐标
        var viaRouteData = [];
        viaRouteData.push(endpoint);
    
        $(function () {
            $("#btn_show").click(function () {
                //这边故意让它晚一秒运行,因为上面获取坐标信息是比较慢又是异步
                setTimeout(ShowRoute, 1000);
            });
        });
    
        function ShowRoute() {
            var firstPoint;
            var endPoint;
            var newChartData = [];
            //对坐标点重新定义
            $.each(chartData, function (item, value) {
                newChartData.push(new BMap.Point(value.lat, value.lng));
            });
            //为了获得起点及终点的坐标值,方便对它进行文字处理
            firstPoint = newChartData[0];
            endPoint = newChartData[newChartData.length - 1];
            //加载地图
            var maps = new BMap.Map("r-result");
            maps.centerAndZoom(new BMap.Point(118.10000, 24.46667), 15);
            //把步行线路的坐标集合转化成折线
            var polyline = new BMap.Polyline(newChartData, { strokeColor: "red", strokeWeight: 6, strokeOpacity: 0.5 });
            maps.addOverlay(polyline);
    
            //对起点、终点、途经点做一个简单的处理,泡泡跟文字提示
            var m1 = new BMap.Marker(firstPoint);
            var m2 = new BMap.Marker(endPoint);
            maps.addOverlay(m1);
            maps.addOverlay(m2);
            var lab1 = new BMap.Label("起点", { position: firstPoint });
            var lab2 = new BMap.Label("终点", { position: endPoint });
            maps.addOverlay(lab1);
            maps.addOverlay(lab2);
    
            $.each(viaRouteData, function (item, value) {
                var m = new BMap.Marker(value);
                maps.addOverlay(m);
                var lab = new BMap.Label("途经点", { position: value });
                maps.addOverlay(lab);
            });
        }
    </script>
    复制代码

    左边是使用步行接口显示的三点连线地图,两点间都会标识起点跟终点,所以要是有多点地图上就会出现很为起点、终点的标志;右边这张是通过修改以后的地图;

    编辑修改于2014-08-12

    上面实例中会存在一个问题,因为如果我们存在有多点情况下会进行for循环把每两个点的路线画出来,并得到这种路线的坐标集合;不过因为获取坐标集合百度地图API是通过回调函数实现;这边不得不面对一个FOR循环里包含回调方法,导致获得坐标集合顺序会出现问题;会出现如下图那样,有些点之间错乱,图在多出一些直接;

    结合上面出现的问题对相应代码进行调整:

    复制代码
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <title></title>
        <script src="Scripts/jquery-1.8.2.js"></script>
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nLpN5iKztxIWsPqgwsyrruUG"></script>
        <script type="text/javascript">
            $(function ()
            {
                $("#btn_Show").click(function () {
                    showMap();
                });
            });
    
            var chartData = [];
            function showMap() {
                var startSce = $("#<%=tb_Start.ClientID%>").val();
                var EndSce = $("#<%=tb_End.ClientID%>").val();
                var viaArray = $("#<%=tb_via.ClientID%>").val();
    
                $.ajax({
                    type: "get",
                    data: { startSce: startSce, viaArray: viaArray, EndSce: EndSce },
                    datatype: "json",
                    url: "Handler1.ashx",
                    async: false,
                    success: function (userInfo) {
                        var abc = $.parseJSON(userInfo);
                        $.each(abc, function (item, value) {
                            chartData.push(new BMap.Point(value.lan, value.yan));
                        })
                        for (var i = 0; i < chartData.length-1; i++) {
                            var startPoint = chartData[i];
                            var endPoint = chartData[i + 1];
                            showPath(startPoint, endPoint);
                        }
    
                        $.each(abc, function (item, value) {
                            var firstPoint = new BMap.Point(value.lan, value.yan);
                            var m1 = new BMap.Marker(firstPoint);
                            maps.addOverlay(m1);
                            var lab1 = new BMap.Label(item+1, { position: firstPoint });
                            maps.addOverlay(lab1);
                        });
    
                    }
                });
            }
    
            function showPath(startPoint, EndPoint)
            {
                var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true } });
                walking.search(startPoint, EndPoint);
    
                walking.setSearchCompleteCallback(function (rs) {
                    var abc = rs;
                    var pts = walking.getResults().getPlan(0).getRoute(0).getPath();
                    maps.addOverlay(new BMap.Polyline(pts, { strokeColor: "green", strokeWeight: 2, strokeOpacity: 1 }));
                });
            }
        </script>
    </head>
    <body>
       <form id="form1" runat="server">
        起点:<asp:TextBox ID="tb_Start" runat="server"></asp:TextBox>
        途经点(以"|"进行分隔):<asp:TextBox ID="tb_via" runat="server" Width="295px"></asp:TextBox>
        终点:<asp:TextBox ID="tb_End" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="确认" OnClick="Button1_Click" /><br /><br />
        结果显示:
        <asp:Label ID="lb_message" runat="server"></asp:Label>
        </form>
        <br />
        <br />
        <input id="btn_Show" type="button" value="显示步行路线" />
        步行路径图:
        <div id="allmap" style=" height:900px; 1000px">
            
        </div>
        <br />
        <br />
        
        修改后的路径图:
        <div id="r-result" style=" height:500px; 900px">
        </div>
    </body>
    </html>
    
    <script type="text/javascript">
    
        var map = new BMap.Map("allmap");
        map.centerAndZoom(new BMap.Point(118.075367, 24.44583), 15);
        map.addControl(new BMap.ScaleControl());
        map.addControl(new BMap.NavigationControl());
    
    
        var maps = new BMap.Map("r-result");
        maps.centerAndZoom(new BMap.Point(118.075367, 24.44583), 15);
        maps.addControl(new BMap.ScaleControl());
        maps.addControl(new BMap.NavigationControl());
    </script>
    复制代码

    主要是这里要注意(在回调过程中直接把直线画出来,不用再去获取两点间的坐标集合再去画线):

    var pts = walking.getResults().getPlan(0).getRoute(0).getPath();
    maps.addOverlay(new BMap.Polyline(pts, { strokeColor: "green", strokeWeight: 2, strokeOpacity: 1 }));

    效果图如下:

     上面修改后的图片可以对文字跟气泡进行再处理效果如下:

    主要修改JS代码如下:

    复制代码
                        $.each(abc, function (item, value) {
                            var firstPoint = new BMap.Point(value.lan, value.yan);
                            //var startIcon = new BMap.Icon("ic_map_location.png", new BMap.Size(45, 45));
                            //var m1 = new BMap.Marker(firstPoint, { icon: startIcon, offset: new BMap.Size(-8, -15) });
                            var m1 = new BMap.Marker(firstPoint);
                            maps.addOverlay(m1);
                            var lab1 = new BMap.Label(item + 1, { position: firstPoint, offset: new BMap.Size(-10, -25) });
                            lab1.setStyle({
                                color: "#fff",
                                fontSize: "16px",
                                backgroundColor: "0.05",
                                border: "0",
                                fontWeight: "bold"
                            });
                            maps.addOverlay(lab1);
                        });
    复制代码

    编辑修改于2014-08-18

    针对上面第二种是没有把线路坐标集合保存到数据库中,这样会出现每次页面加载都去百度那边进行获得坐标集合,针对这种情况进行修改,虽然FOR回调函数会出现错乱的问题,但这边可以加个标识让它显示出每一段集合是所属顺序,然后再进行合并出正确集合点;

    复制代码
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <title></title>
        <script src="Scripts/jquery-1.8.2.js"></script>
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nLpN5iKztxIWsPqgwsyrruUG"></script>
        <script type="text/javascript">
            $(function () {
                $("#btn_Show").click(function () {
                    showMap();
                });
            });
    
            var chartData = [];
            function showMap() {
                var startSce = $("#<%=tb_Start.ClientID%>").val();
                var EndSce = $("#<%=tb_End.ClientID%>").val();
                var viaArray = $("#<%=tb_via.ClientID%>").val();
    
                $.ajax({
                    type: "get",
                    data: { startSce: startSce, viaArray: encodeURI(viaArray), EndSce: EndSce },
                    datatype: "json",
                    url: "Handler1.ashx",
                    async: false,
                    success: function (userInfo) {
                        var abc = $.parseJSON(userInfo);
                        $.each(abc, function (item, value) {
                            chartData.push(new BMap.Point(value.lan, value.yan));
                        })
                        for (var i = 0; i < chartData.length - 1; i++) {
                            var startPoint = chartData[i];
                            var endPoint = chartData[i + 1];
                            showPath(startPoint, endPoint,i);
                        }
                    }
                });
            }
    
            function showPath(startPoint, EndPoint,PointIndex) {
                var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true } });
                walking.search(startPoint, EndPoint);
               
                walking.setSearchCompleteCallback(function (rs) {
                    var pts = walking.getResults().getPlan(0).getRoute(0).getPath();
                    var ptsJson = JSON.stringify(pts);
                    $.ajax({
                        type: "post",
                        data: { SpointArray: ptsJson, PointIndex: PointIndex },
                        datatype: "json",
                        url: "Handler3.ashx",
                        async: false,
                        success: function (userInfo) {
                           
                        }
                    });
                });
            }
        </script>
    复制代码

    Handler3代码如下:

    复制代码
    using Newtonsoft.Json;
    namespace WebApplication1
    {
        /// <summary>
        /// Handler3 的摘要说明
        /// </summary>
        public class Handler3 : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                string start = context.Request["SpointArray"];
                string PointIndex = context.Request["PointIndex"];
                List<ResultList> list = JsonConvert.DeserializeObject<List<ResultList>>(start);
                List<ResultList> newList = new List<ResultList>();
                foreach (var item in list)
                {
                    bool result = newList.Where(o => o.lng == item.lng && o.lat == item.lat).Count()== 0;
                    if (result)
                    {
                        newList.Add(item);
                    }
                }
                FileText.WriteString(start + "|" + PointIndex);
                string newResult = "";
                foreach (var item in newList)
                {
                    //保存到数据库中,顺序标识也要保存起来PointIndex
                    newResult += "new ResultList(){lng=" + item.lng + ",lat=" + item.lat + "},";
                }
                FileText.WriteString("修改后的结节:" + newResult);
                context.Response.Write("Hello World");
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    
        public class ResultList
        {
            public double lng { get; set; }
    
            public double lat { get; set; }
        }
    }
    复制代码

    显示代码如下:

    复制代码
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <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 { 100%;height: 100%;overflow: hidden;margin:0;}
    </style>
       
        <script type="text/javascript" src="Scripts/jquery-1.8.2.js"></script>
     <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nLpN5iKztxIWsPqgwsyrruUG"></script>
        <title></title>
    </head>
    <body>
       
    <div id="allmap"></div>
    
    </body>
    </html>
    
    <script type="text/javascript">
    
        $(function () {
            abc();
        });
        function abc() {
            var map = new BMap.Map("allmap");
            map.centerAndZoom(new BMap.Point(118.10000, 24.46667), 15);
            var chartData = [];
            $.ajax({
                type: "get",
                datatype: "json",
                url: "Handler4.ashx",
                async: false,
                success: function (userInfo) {
                    var abc = $.parseJSON(userInfo);
                    $.each(abc, function (item, value) {
                        chartData.push(new BMap.Point(value.lng, value.lat));
                    })
                    var polyline = new BMap.Polyline(chartData, { strokeColor: "blue", strokeWeight: 6, strokeOpacity: 0.5 });
                    map.addOverlay(polyline);
                },
                error: function (error) {
    
                }
            });
        }
    </script>
    复制代码

    Handler4代码如下(要按标识顺序读出坐标点集合):

    复制代码
    using Newtonsoft.Json;
    
    namespace WebApplication1
    {
        /// <summary>
        /// Handler4 的摘要说明
        /// </summary>
        public class Handler4 : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                List<ResultList> newList = new List<ResultList>()
                {
                    //从数据库获得顺序集合
                    new ResultList(){lng=118.07572,lat=24.456086},new ResultList(){lng=118.075747,lat=24.455756},new ResultList(){lng=118.075728,lat=24.455776},new ResultList(){lng=118.075698,lat=24.455776},new ResultList(){lng=118.075628,lat=24.455775},new ResultList(){lng=118.075419,lat=24.455712},new ResultList(){lng=118.075269,lat=24.455641},new ResultList(){lng=118.075388,lat=24.455422},new ResultList(){lng=118.075518,lat=24.455114},new ResultList(){lng=118.075528,lat=24.455094},new ResultList(){lng=118.075648,lat=24.454865},new ResultList(){lng=118.075768,lat=24.454656},new ResultList(){lng=118.075848,lat=24.454497},new ResultList(){lng=118.075858,lat=24.454427},new ResultList(){lng=118.075848,lat=24.454357},new ResultList(){lng=118.075818,lat=24.454226},new ResultList(){lng=118.075788,lat=24.454246},new ResultList(){lng=118.075768,lat=24.454256},new ResultList(){lng=118.075748,lat=24.454246},new ResultList(){lng=118.075728,lat=24.454225},new ResultList(){lng=118.075678,lat=24.454135},new ResultList(){lng=118.075579,lat=24.454054},new ResultList(){lng=118.075448,lat=24.453973},new ResultList(){lng=118.075438,lat=24.453943},new ResultList(){lng=118.075389,lat=24.453873},new ResultList(){lng=118.075319,lat=24.453791},new ResultList(){lng=118.075319,lat=24.453752},new ResultList(){lng=118.075289,lat=24.453632},new ResultList(){lng=118.07517,lat=24.453415},new ResultList(){lng=118.075022,lat=24.453437},new ResultList(){lng=118.075199,lat=24.45332},new ResultList(){lng=118.075179,lat=24.453221},new ResultList(){lng=118.075149,lat=24.45312},new ResultList(){lng=118.075149,lat=24.45288},new ResultList(){lng=118.075159,lat=24.45273},new ResultList(){lng=118.075199,lat=24.452601},new ResultList(){lng=118.075309,lat=24.452481},new ResultList(){lng=118.075419,lat=24.452373},new ResultList(){lng=118.075569,lat=24.452264},new ResultList(){lng=118.075608,lat=24.452235},new ResultList(){lng=118.075828,lat=24.452096},new ResultList(){lng=118.075908,lat=24.452068},new ResultList(){lng=118.076047,lat=24.452039},new ResultList(){lng=118.076157,lat=24.45204},new ResultList(){lng=118.076207,lat=24.451961},new ResultList(){lng=118.076287,lat=24.451821},new ResultList(){lng=118.076417,lat=24.451642},new ResultList(){lng=118.076487,lat=24.451543},new ResultList(){lng=118.076577,lat=24.451454},new ResultList(){lng=118.076607,lat=24.451425},new ResultList(){lng=118.076906,lat=24.451117},new ResultList(){lng=118.077026,lat=24.451008},new ResultList(){lng=118.077086,lat=24.450908},new ResultList(){lng=118.077205,lat=24.450769},new ResultList(){lng=118.077306,lat=24.450651},new ResultList(){lng=118.077496,lat=24.450472},new ResultList(){lng=118.077575,lat=24.450402},new ResultList(){lng=118.077615,lat=24.450353},new ResultList(){lng=118.077685,lat=24.450333},new ResultList(){lng=118.077695,lat=24.450263},new ResultList(){lng=118.077685,lat=24.450203},new ResultList(){lng=118.077665,lat=24.450104},new ResultList(){lng=118.077625,lat=24.450004},new ResultList(){lng=118.077615,lat=24.449953},new ResultList(){lng=118.077615,lat=24.449893},new ResultList(){lng=118.077636,lat=24.449843},new ResultList(){lng=118.077706,lat=24.449704},new ResultList(){lng=118.077716,lat=24.449654},new ResultList(){lng=118.077706,lat=24.449584},new ResultList(){lng=118.077623,lat=24.44948},new ResultList(){lng=118.077556,lat=24.449392},new ResultList(){lng=118.077456,lat=24.449292},new ResultList(){lng=118.077337,lat=24.449161},new ResultList(){lng=118.077306,lat=24.44912},new ResultList(){lng=118.077236,lat=24.44906},new ResultList(){lng=118.077057,lat=24.448918},new ResultList(){lng=118.077037,lat=24.448908},new ResultList(){lng=118.076977,lat=24.448868},new ResultList(){lng=118.076827,lat=24.448777},new ResultList(){lng=118.076698,lat=24.448685},new ResultList(){lng=118.076667,lat=24.448655},new ResultList(){lng=118.076558,lat=24.448614},new ResultList(){lng=118.076189,lat=24.448461},new ResultList(){lng=118.076049,lat=24.448419},new ResultList(){lng=118.075659,lat=24.448305},new ResultList(){lng=118.07537,lat=24.448073},new ResultList(){lng=118.075341,lat=24.448042},new ResultList(){lng=118.075111,lat=24.448369},new ResultList(){lng=118.075061,lat=24.448389},new ResultList(){lng=118.075031,lat=24.448389},new ResultList(){lng=118.074991,lat=24.448398},new ResultList(){lng=118.074971,lat=24.448429},new ResultList(){lng=118.074921,lat=24.448638},new ResultList(){lng=118.074911,lat=24.448657},new ResultList(){lng=118.074821,lat=24.448677},new ResultList(){lng=118.074802,lat=24.448676},new ResultList(){lng=118.074782,lat=24.448696},new ResultList(){lng=118.074771,lat=24.448717},new ResultList(){lng=118.074761,lat=24.448746},new ResultList(){lng=118.074761,lat=24.448786},new ResultList(){lng=118.07478,lat=24.448817},new ResultList(){lng=118.074652,lat=24.448695},new ResultList(){lng=118.074482,lat=24.448693},new ResultList(){lng=118.074462,lat=24.448703},new ResultList(){lng=118.074452,lat=24.448743},new ResultList(){lng=118.074422,lat=24.448763},new ResultList(){lng=118.074402,lat=24.448763},new ResultList(){lng=118.074342,lat=24.448762},new ResultList(){lng=118.074313,lat=24.448751},new ResultList(){lng=118.074282,lat=24.448721},new ResultList(){lng=118.074202,lat=24.44872},new ResultList(){lng=118.074133,lat=24.448729},new ResultList(){lng=118.074073,lat=24.448729},new ResultList(){lng=118.074033,lat=24.448738},new ResultList(){lng=118.073944,lat=24.448737},new ResultList(){lng=118.073893,lat=24.448747},new ResultList(){lng=118.073854,lat=24.448746},new ResultList(){lng=118.073823,lat=24.448776},new ResultList(){lng=118.073804,lat=24.448776},new ResultList(){lng=118.073784,lat=24.448755},new ResultList(){lng=118.073784,lat=24.448726},new ResultList(){lng=118.073784,lat=24.448695},new ResultList(){lng=118.073764,lat=24.448675},new ResultList(){lng=118.073743,lat=24.448665},new ResultList(){lng=118.073714,lat=24.448655},new ResultList(){lng=118.073684,lat=24.448634},new ResultList(){lng=118.073604,lat=24.448593},new ResultList(){lng=118.073574,lat=24.448583},new ResultList(){lng=118.073534,lat=24.448582},new ResultList(){lng=118.073494,lat=24.448602},new ResultList(){lng=118.073475,lat=24.448612},new ResultList(){lng=118.073434,lat=24.448611},new ResultList(){lng=118.073405,lat=24.448601},new ResultList(){lng=118.073375,lat=24.448591},new ResultList(){lng=118.073344,lat=24.44855},new ResultList(){lng=118.073344,lat=24.44851},new ResultList(){lng=118.073354,lat=24.44844},new ResultList(){lng=118.073344,lat=24.4484},new ResultList(){lng=118.073344,lat=24.44837},new ResultList(){lng=118.073295,lat=24.44836},new ResultList(){lng=118.073275,lat=24.448339},new ResultList(){lng=118.073275,lat=24.448319},new ResultList(){lng=118.073285,lat=24.44829},new ResultList(){lng=118.073275,lat=24.448259},new ResultList(){lng=118.073256,lat=24.448229},new ResultList(){lng=118.073235,lat=24.448199},new ResultList(){lng=118.073195,lat=24.448189},new ResultList(){lng=118.073155,lat=24.448198},new ResultList(){lng=118.073135,lat=24.448207},new ResultList(){lng=118.073086,lat=24.448227},new ResultList(){lng=118.073086,lat=24.448267},new ResultList(){lng=118.073096,lat=24.448307},new ResultList(){lng=118.073115,lat=24.448467},new ResultList(){lng=118.073106,lat=24.448487},new ResultList(){lng=118.073086,lat=24.448497},new ResultList(){lng=118.073055,lat=24.448507},new ResultList(){lng=118.072996,lat=24.448516},new ResultList(){lng=118.072986,lat=24.448536},new ResultList(){lng=118.072926,lat=24.448596},new ResultList(){lng=118.072876,lat=24.448624},new ResultList(){lng=118.072846,lat=24.448634},new ResultList(){lng=118.072816,lat=24.448634},new ResultList(){lng=118.072797,lat=24.448624},new ResultList(){lng=118.072766,lat=24.448564},new ResultList(){lng=118.072736,lat=24.448553},new ResultList(){lng=118.072697,lat=24.448563},new ResultList(){lng=118.072646,lat=24.448562},new ResultList(){lng=118.072567,lat=24.448621},new ResultList(){lng=118.072517,lat=24.44869},new ResultList(){lng=118.072586,lat=24.448701},new ResultList(){lng=118.072656,lat=24.448762},new ResultList(){lng=118.072706,lat=24.448842},new ResultList(){lng=118.072746,lat=24.448893},new ResultList(){lng=118.072766,lat=24.448874},new ResultList(){lng=118.072786,lat=24.448864},new ResultList(){lng=118.072816,lat=24.448874},new ResultList(){lng=118.072836,lat=24.448894},new ResultList(){lng=118.072866,lat=24.448915},new ResultList(){lng=118.072895,lat=24.448915},new ResultList(){lng=118.072965,lat=24.448846},new ResultList(){lng=118.073045,lat=24.448947},new ResultList(){lng=118.073195,lat=24.449068},new ResultList(){lng=118.073344,lat=24.449101},new ResultList(){lng=118.073344,lat=24.449101},new ResultList(){lng=118.073195,lat=24.449068},new ResultList(){lng=118.073045,lat=24.448947},new ResultList(){lng=118.072965,lat=24.448846},new ResultList(){lng=118.072895,lat=24.448915},new ResultList(){lng=118.072866,lat=24.448915},new ResultList(){lng=118.072836,lat=24.448894},new ResultList(){lng=118.072816,lat=24.448874},new ResultList(){lng=118.072786,lat=24.448864},new ResultList(){lng=118.072766,lat=24.448874},new ResultList(){lng=118.072746,lat=24.448893},new ResultList(){lng=118.072706,lat=24.448842},new ResultList(){lng=118.072656,lat=24.448762},new ResultList(){lng=118.072586,lat=24.448701},new ResultList(){lng=118.072517,lat=24.44869},new ResultList(){lng=118.072487,lat=24.448679},new ResultList(){lng=118.072447,lat=24.448689},new ResultList(){lng=118.072397,lat=24.448709},new ResultList(){lng=118.072347,lat=24.448668},new ResultList(){lng=118.072088,lat=24.448585},new ResultList(){lng=118.071978,lat=24.448554},new ResultList(){lng=118.071869,lat=24.448522},new ResultList(){lng=118.071808,lat=24.448511},new ResultList(){lng=118.071569,lat=24.448468},new ResultList(){lng=118.071569,lat=24.448468},new ResultList(){lng=118.071808,lat=24.448511},new ResultList(){lng=118.071869,lat=24.448522},new ResultList(){lng=118.071978,lat=24.448554},new ResultList(){lng=118.072088,lat=24.448585},new ResultList(){lng=118.072347,lat=24.448668},new ResultList(){lng=118.072487,lat=24.44848},new ResultList(){lng=118.072576,lat=24.448411},new ResultList(){lng=118.072646,lat=24.448352},new ResultList(){lng=118.072666,lat=24.448272},new ResultList(){lng=118.072677,lat=24.447962},new ResultList(){lng=118.072687,lat=24.447912},new ResultList(){lng=118.072777,lat=24.447763},new ResultList(){lng=118.072926,lat=24.447585},new ResultList(){lng=118.073046,lat=24.447487},new ResultList(){lng=118.073115,lat=24.447467},new ResultList(){lng=118.073136,lat=24.447318},new ResultList(){lng=118.073236,lat=24.447319},new ResultList(){lng=118.073326,lat=24.44729},new ResultList(){lng=118.073406,lat=24.447271},new ResultList(){lng=118.073465,lat=24.447232},new ResultList(){lng=118.073605,lat=24.447193},new ResultList(){lng=118.073674,lat=24.447164},new ResultList(){lng=118.073674,lat=24.447134},new ResultList(){lng=118.073695,lat=24.447084},new ResultList(){lng=118.073804,lat=24.446896},new ResultList(){lng=118.073855,lat=24.446806},new ResultList(){lng=118.073904,lat=24.446757},new ResultList(){lng=118.073974,lat=24.446728},new ResultList(){lng=118.074104,lat=24.446549},new ResultList(){lng=118.074183,lat=24.44624},new ResultList(){lng=118.074234,lat=24.44624},new ResultList(){lng=118.074343,lat=24.446232},new ResultList(){lng=118.074473,lat=24.446233},new ResultList(){lng=118.074603,lat=24.446215},new ResultList(){lng=118.074732,lat=24.446186},new ResultList(){lng=118.074872,lat=24.446147},new ResultList(){lng=118.074892,lat=24.446138},new ResultList(){lng=118.074972,lat=24.446109},new ResultList(){lng=118.075032,lat=24.446069},new ResultList(){lng=118.075112,lat=24.44601},new ResultList(){lng=118.075162,lat=24.44598},new ResultList(){lng=118.075222,lat=24.445971},new ResultList(){lng=118.075271,lat=24.445962},new ResultList(){lng=118.075341,lat=24.445952},new ResultList(){lng=118.075541,lat=24.445704},new ResultList(){lng=118.075541,lat=24.445684},new ResultList(){lng=118.075571,lat=24.445645},new ResultList(){lng=118.075601,lat=24.445615},new ResultList(){lng=118.075611,lat=24.445595},new ResultList(){lng=118.075601,lat=24.445565},new ResultList(){lng=118.075601,lat=24.445545},new ResultList(){lng=118.075671,lat=24.445475},new ResultList(){lng=118.075681,lat=24.445436},new ResultList(){lng=118.075721,lat=24.445366},new ResultList(){lng=118.075771,lat=24.445367},new ResultList(){lng=118.0758,lat=24.445347},new ResultList(){lng=118.075811,lat=24.445317},new ResultList(){lng=118.075841,lat=24.445318},new ResultList(){lng=118.075841,lat=24.445298},new ResultList(){lng=118.075851,lat=24.445277},new ResultList(){lng=118.075861,lat=24.445258},new ResultList(){lng=118.075871,lat=24.445238},new ResultList(){lng=118.075891,lat=24.445218},new ResultList(){lng=118.075911,lat=24.445218},new ResultList(){lng=118.075921,lat=24.445239},new ResultList(){lng=118.075931,lat=24.445278},new ResultList(){lng=118.07596,lat=24.445339},new ResultList(){lng=118.07597,lat=24.445378},new ResultList(){lng=118.07603,lat=24.44529},new ResultList(){lng=118.07606,lat=24.445259},new ResultList(){lng=118.076081,lat=24.44521},new ResultList(){lng=118.076081,lat=24.445179},new ResultList(){lng=118.076071,lat=24.44515},new ResultList(){lng=118.076071,lat=24.445119},new ResultList(){lng=118.076081,lat=24.44508},new ResultList(){lng=118.076091,lat=24.445049},new ResultList(){lng=118.0761,lat=24.44503},new ResultList(){lng=118.07612,lat=24.44501},new ResultList(){lng=118.07613,lat=24.444971},new ResultList(){lng=118.07613,lat=24.44493},new ResultList(){lng=118.07614,lat=24.44491},new ResultList(){lng=118.076161,lat=24.44491},new ResultList(){lng=118.07618,lat=24.44492},new ResultList(){lng=118.07627,lat=24.444922},new ResultList(){lng=118.0763,lat=24.444932},new ResultList(){lng=118.07632,lat=24.444952},new ResultList(){lng=118.076409,lat=24.444953},new ResultList(){lng=118.0764,lat=24.444923},new ResultList(){lng=118.0764,lat=24.444873},new ResultList(){lng=118.076409,lat=24.444853},new ResultList(){lng=118.07642,lat=24.444823},new ResultList(){lng=118.07643,lat=24.444803},new ResultList(){lng=118.07647,lat=24.444784},new ResultList(){lng=118.0765,lat=24.444774},new ResultList(){lng=118.07652,lat=24.444764},new ResultList(){lng=118.07656,lat=24.444735},new ResultList(){lng=118.07659,lat=24.444765},new ResultList(){lng=118.076659,lat=24.444785},new ResultList(){lng=118.076729,lat=24.444796},new ResultList(){lng=118.07677,lat=24.444796},new ResultList(){lng=118.076879,lat=24.444797},new ResultList(){lng=118.07686,lat=24.444687},new ResultList(){lng=118.076889,lat=24.444537},new ResultList(){lng=118.076899,lat=24.444508},new ResultList(){lng=118.076959,lat=24.444418},new ResultList(){lng=118.077508,lat=24.444262},new ResultList(){lng=118.077658,lat=24.444244},new ResultList(){lng=118.077828,lat=24.444216},new ResultList(){lng=118.077992,lat=24.444216},new ResultList(){lng=118.077992,lat=24.444216},new ResultList(){lng=118.078017,lat=24.444217},new ResultList(){lng=118.078187,lat=24.444258},new ResultList(){lng=118.078596,lat=24.444421},new ResultList(){lng=118.078806,lat=24.444483},new ResultList(){lng=118.078876,lat=24.444503},new ResultList(){lng=118.079724,lat=24.444669},new ResultList(){lng=118.079845,lat=24.44467},new ResultList(){lng=118.079974,lat=24.44468},new ResultList(){lng=118.080354,lat=24.444702},new ResultList(){lng=118.080483,lat=24.444724},new ResultList(){lng=118.080584,lat=24.444764},new ResultList(){lng=118.080684,lat=24.444835},new ResultList(){lng=118.080713,lat=24.444885},new ResultList(){lng=118.080764,lat=24.445005},new ResultList(){lng=118.080803,lat=24.445086},new ResultList(){lng=118.080823,lat=24.445185},new ResultList(){lng=118.080833,lat=24.445266},new ResultList(){lng=118.080843,lat=24.445295},new ResultList(){lng=118.080853,lat=24.445516},new ResultList(){lng=118.080862,lat=24.445615},new ResultList(){lng=118.080843,lat=24.445786},new ResultList(){lng=118.080823,lat=24.445895},new ResultList(){lng=118.080843,lat=24.445966},new ResultList(){lng=118.080882,lat=24.446026},new ResultList(){lng=118.081003,lat=24.446147},new ResultList(){lng=118.081092,lat=24.446237},new ResultList(){lng=118.081122,lat=24.446287},new ResultList(){lng=118.081192,lat=24.446347},new ResultList(){lng=118.081232,lat=24.446397},new ResultList(){lng=118.081272,lat=24.446438},new ResultList(){lng=118.081312,lat=24.446468},new ResultList(){lng=118.081382,lat=24.446518},new ResultList(){lng=118.081462,lat=24.446549},new ResultList(){lng=118.081282,lat=24.446628},new ResultList(){lng=118.081232,lat=24.446647},new ResultList(){lng=118.081222,lat=24.446667},new ResultList(){lng=118.081222,lat=24.446698},new ResultList(){lng=118.081222,lat=24.446727},new ResultList(){lng=118.081251,lat=24.446767},new ResultList(){lng=118.081352,lat=24.446898},new ResultList(){lng=118.081362,lat=24.447128},new ResultList(){lng=118.081382,lat=24.447138},new ResultList(){lng=118.081431,lat=24.447179},new ResultList(){lng=118.081532,lat=24.447269},new ResultList(){lng=118.081561,lat=24.447318},new ResultList(){lng=118.0819,lat=24.44855},new ResultList(){lng=118.08195,lat=24.448601},new ResultList(){lng=118.08199,lat=24.448651},new ResultList(){lng=118.08201,lat=24.44873},new ResultList(){lng=118.08202,lat=24.448811},new ResultList(){lng=118.08201,lat=24.448891},new ResultList(){lng=118.08195,lat=24.449221},new ResultList(){lng=118.08189,lat=24.44953},new ResultList(){lng=118.08184,lat=24.44985},new ResultList(){lng=118.0818,lat=24.45007},new ResultList(){lng=118.081764,lat=24.450196},new ResultList(){lng=118.081764,lat=24.450196},new ResultList(){lng=118.08169,lat=24.450459},new ResultList(){lng=118.08169,lat=24.45055},new ResultList(){lng=118.08168,lat=24.450589},new ResultList(){lng=118.08168,lat=24.450669},new ResultList(){lng=118.08168,lat=24.450889},new ResultList(){lng=118.08167,lat=24.451019},new ResultList(){lng=118.081659,lat=24.451059},new ResultList(){lng=118.081649,lat=24.451079},new ResultList(){lng=118.081639,lat=24.451099},new ResultList(){lng=118.08161,lat=24.451129},new ResultList(){lng=118.081579,lat=24.451159},new ResultList(){lng=118.08151,lat=24.451228},new ResultList(){lng=118.08133,lat=24.451368},new ResultList(){lng=118.08125,lat=24.451427},new ResultList(){lng=118.08117,lat=24.451497},new ResultList(){lng=118.08111,lat=24.451556},new ResultList(){lng=118.08107,lat=24.451576},new ResultList(){lng=118.08103,lat=24.451596},new ResultList(){lng=118.08099,lat=24.451615},new ResultList(){lng=118.080941,lat=24.451615},new ResultList(){lng=118.08088,lat=24.451595},new ResultList(){lng=118.08082,lat=24.451554},new ResultList(){lng=118.080711,lat=24.451464},new ResultList(){lng=118.08067,lat=24.451434},new ResultList(){lng=118.080611,lat=24.451393},new ResultList(){lng=118.080521,lat=24.451383},new ResultList(){lng=118.080451,lat=24.451413},new ResultList(){lng=118.080381,lat=24.451453},new ResultList(){lng=118.080321,lat=24.451522},new ResultList(){lng=118.080171,lat=24.451721},new ResultList(){lng=118.079792,lat=24.452339},new ResultList(){lng=118.079761,lat=24.452378},new ResultList(){lng=118.079722,lat=24.452418},new ResultList(){lng=118.079692,lat=24.452439}
                };
    
                string strSerializeJSON = JsonConvert.SerializeObject(newList);
                context.Response.Write(strSerializeJSON);
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    复制代码


    效果图:

    另:给标记点增加点击事件并弹窗(注要用到的openInfoWindow,其中enableMessage:false是把窗口上的小手机关闭);

    复制代码
    $.each(abc, function (item, value) {
                            var firstPoint = new BMap.Point(value.lan, value.yan);
                            //var startIcon = new BMap.Icon("ic_map_location.png", new BMap.Size(45, 45));
                            //var m1 = new BMap.Marker(firstPoint, { icon: startIcon, offset: new BMap.Size(-8, -15) });
                            var m1 = new BMap.Marker(firstPoint);
                            var infoWindow = new BMap.InfoWindow("当前第"+(item+1)+"景点:厦门海底世界", { enableMessage: false,  30, height: 20 });
                            m1.addEventListener("click", function ()
                            {
                                this.openInfoWindow(infoWindow);
                            });
                            maps.addOverlay(m1);
                            var lab1 = new BMap.Label(item + 1, { position: firstPoint, offset: new BMap.Size(-10, -25) });
                            lab1.setStyle({
                                color: "#fff",
                                fontSize: "16px",
                                backgroundColor: "0.05",
                                border: "0",
                                fontWeight: "bold"
                            });
                            maps.addOverlay(lab1);
                        });
    复制代码

    编辑修改于2014-08-27

    针对弹出提示窗在For里面要使用JS的闭包功能,否则会出现所有提示全部变成最后一个,代码如下:

    复制代码
     for (var i = 0; i < result.length; i++) {
    
                    var firstPoint = new BMap.Point(result[i].PointLng, result[i].PointLat);
                    var m1 = new BMap.Marker(firstPoint);
                    
                    var winfowText = "[途经点]:" + result[i].PointLable;
                    var labText = result[i].PointOrder;
                    if (result[i].PointType == "0" || result[i].PointType == "1") {
                        if (result[0].PointLng == result[result.length - 1].PointLng && result[0].PointLat == result[result.length - 1].PointLat) {
                            labText = "并";
                            winfowText = "[起点|终点]:" + result[0].PointLable;
                        }
                        else {
                            if (result[i].PointType == "0") {
                                labText = "起";
                                winfowText = "[起点]:" + result[i].PointLable;
                            }
                            else {
                                labText = "终";
                                winfowText = "[终点]:" + result[i].PointLable;
                            }
                        }
                    }
    
                    (function (x) {  
                        var infoWindow = new BMap.InfoWindow(winfowText, { enableMessage: false,  30, height: 20 });
                        m1.addEventListener("click", function () {
                            this.openInfoWindow(infoWindow);
                        });
                    })(i);
                    maps.addOverlay(m1);
    
    
                    var lab1 = new BMap.Label(labText, { position: firstPoint, offset: new BMap.Size(-10, -25) });
                    lab1.setStyle({
                        color: "#fff",
                        fontSize: "16px",
                        backgroundColor: "0.05",
                        border: "0",
                        fontWeight: "bold"
                    });
                    maps.addOverlay(lab1);
                }
  • 相关阅读:
    SQL 查询中 not in的改进,--not exists
    REST接口--转摘
    C#中@的用法总结(转)
    有感于哈工大matlab被限制使用
    Oracle CURRVAL应用限制
    oracle to_char()函数--数字型到字符型
    如何提交代码到git仓库
    cannot find module 'xxx' 解决办法
    DOM-基本概念及使用
    AJAX-同源策略 跨域访问
  • 原文地址:https://www.cnblogs.com/milkytea/p/6723494.html
Copyright © 2011-2022 走看看