zoukankan      html  css  js  c++  java
  • openlayers交互之线

    一、地图上添加线控件:

    1、css:

            div.olControlPanel
            {
                top: 0px;
                left: 50px;
                position: absolute;
            }
           
            .olControlPanel div
            {
                display: block;
                24px;
                height: 24px;
                margin: 5px;
                background-color: white;
            }
           
            .olControlPanel .olControlMouseDefaultsItemActive
            {
                background-color: blue;
                background-image: url("http://www.cnblogs.com/OpenLayers/theme/default/img/pan_on.png");
            }
            .olControlPanel .olControlMouseDefaultsItemInactive
            {
                background-color: orange;
                background-image: url("http://www.cnblogs.com/OpenLayers/theme/default/img/pan_off.png");
            }
            .olControlPanel .olControlDrawFeatureItemActive
            {
                24px;
                height: 22px;
                background-image: url("http://www.cnblogs.com/OpenLayers/theme/default/img/draw_line_on.png");
            }
            .olControlPanel .olControlDrawFeatureItemInactive
            {
                24px;
                height: 22px;
                background-image: url("http://www.cnblogs.com/OpenLayers/theme/default/img/draw_line_off.png");
            }

    2、js:

    function init(){

      lineLayer = new OpenLayers.Layer.Vector("画线");
                map.addLayer(lineLayer);


                panel = new OpenLayers.Control.Panel();
              

                panel.addControls([new OpenLayers.Control.MouseDefaults(),
                     new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path,
                        { title: '画线' })]);


                map.addControl(panel);

    }

      function toggleControl() {
                    panel.deactivate();
            }

    二、保存线经纬度:

    function getData(){

     var line = lineLayer;
                var linelist;
                var list, i, j;
                if (line != null && line.features.length > 0) {
                    for (i = 0; i < line.features.length; i++) {
                        list = "";
                        if (line.features[i].geometry.CLASS_NAME == "OpenLayers.Geometry.LineString") {
                            list = line.features[i].geometry.components;

                            for (j = 0; j < list.length; j++) {
                                if (linelist == null || linelist == "") {
                                    linelist = i + ":";  //记录第几条线的点
                                }
                                else {
                                    linelist += i + ":";  //记录第几条线的点
                                }
                                linelist += list[j].x + ","; //记录经度
                                linelist += list[j].y + ",";  //记录维度
                                linelist += j + ";"; //记录线的第几个点
                            }
                            linelist += "|";
                        }
                    }
                }

    }

    三、根据经纬度绘制线:

    function draw(){

    if (drawlayer != null) {
                    map.removeLayer(drawlayer);
                }
                drawlayer = new OpenLayers.Layer.Vector("画图");
                map.addLayer(drawlayer);

                if (data != null && data.length > 0) {
     
                    var pointList = [];

                    var lineFeature;
                    for (var i = 0; i < data.length; i++) {
                      
        
                            var ll = new OpenLayers.LonLat(data[i].Lon, data[i].Lat);
                            var newPoint = new OpenLayers.Geometry.Point(ll.lon, ll.lat);
                            pointList.push(newPoint);

            }
                    
                                    lineFeature = new OpenLayers.Feature.Vector(
                    new OpenLayers.Geometry.LineString(pointList));
                                
                                        drawlayer.addFeatures([lineFeature]);
                
                                pointList.clear();

    }

  • 相关阅读:
    format的用法

    TADOQuery池
    10分钟了解JSON Web令牌(JWT)
    PHP操作Redis数据库常用方法
    平时在PHP编码时有没有注意到这些问题
    利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
    ORM的详解
    oracle NLS_LANG环境变量设置
    验证选择每日学习总结:DropDownList是否已选择验证、存储过程参数为sql字符串问题、将截断字符串或二进制数据。\r\n语句已终止
  • 原文地址:https://www.cnblogs.com/ruoshui/p/2157402.html
Copyright © 2011-2022 走看看