您的位置:首页 > 其它

给定坐标点,绘制轨迹

2016-01-20 18:50 218 查看
function showXueLongTrack(map,data){

    require([

        "dojo/_base/array",

        "esri/layers/GraphicsLayer",

        "esri/geometry/Polyline","esri/geometry/Point",

        "esri/symbols/SimpleLineSymbol",

        "esri/graphic",

        "esri/Color",

        "esri/request"

    ], function(arrayUtils,

                GraphicsLayer,

                Polyline,Point,

                SimpleLineSymbol,

                Graphic,

                Color,

                esriRequest

    ) {

        var pointData=data["GPS"];

        Proj4js.defs["ESRI:102021"]="+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs";

        /*原始点坐标*/

        var source = new Proj4js.Proj("EPSG:4326");

        /*点投影的目标坐标*/

        var dest = new Proj4js.Proj("ESRI:102021");

        /* 获取的数据,转换成我要的ponit格式,再投影转换*/

        var pointInfo = {};

        pointInfo.data = arrayUtils.map(pointData, function(p) {

            /*点坐标格式转换*/

            var pointX=parseFloat(p.longitudeValue);

            var pointY=parseFloat(p.latitudeValue);

            var myPoint = new Proj4js.Point(pointX,pointY);

           /* 转换后,point 和afePro 一样了*/

            var afePro=Proj4js.transform(source, dest, myPoint);

            var point = {

                "x": afePro.x,

                "y": afePro.y,

                "spatialReference": {"wkid": 102021 }

            };

            return {

                "point": point

            };

        });

         /*转换数据为我需要的json格式,用以化路径*/

        var len=pointInfo.data.length;

        var p;

        var polyLineJson = {

            "paths":[[]],

            "spatialReference":{"wkid":102021}
        };

      //数组连接

        for (var i=0;i<len;i++){

            p=[pointInfo.data[i].point.x,pointInfo.data[i].point.y];

            polyLineJson.paths[0].push(p);

        }

        var polyLine = new esri.geometry.Polyline(polyLineJson);

        var symbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,

            new Color([0, 255, 0]),

            2

        );

        //create graphic

        var line = new esri.Graphic(polyLine, symbol);

        //add graphic to map

        map.graphics.add(line);

    });

}

function getData(map){

    $.ajax({

        type : "post",

        url : "后台地址",

        dataType : "json",

        error : function(error) {

            console.log("error", error);

        },

        success : function(data) {

            showXueLongTrack(map,data);

        }

    });

}

参考网址:
http://stackoverflow.com/questions/433627/concat-json-objects https://msdn.microsoft.com/en-us/library/6d0cbb1w(v=vs.94).aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: