arcgis api 3.X 实现台风路径动态演示

最终效果:

 

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
    <title>Simple Map</title>
    <link rel="stylesheet" type="text/css" href="http://localhost:8080/arcgis_js_api/library/3.20/3.20/dijit/themes/tundra/tundra.css"/>
    <link rel="stylesheet" type="text/css" href="http://localhost:8080/arcgis_js_api/library/3.20/3.20/esri/css/esri.css" />
    <script type="text/javascript" src="http://localhost:8080/arcgis_js_api/library/3.20/3.20/init.js"></script>
    <style>
        html, body, #map {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        body {
            background-color: #FFF;
            overflow: hidden;
            font-family: "Trebuchet MS";
        }
    </style>
    <script>

        var path = [
            {"id":1,  "x":120.49357,  "y":44.883323, "radius":100000},
            {"id":2,  "x":117.9872,   "y":42.350326, "radius":80000},
            {"id":3,  "x":115.545833, "y":39.79259,  "radius":120000},
            {"id":4,  "x":113.508521, "y":38.274465, "radius":40000},
            {"id":5,  "x":110.551524, "y":37.151942, "radius":150000},
            {"id":6, "x":105.640902,  "y":39.126654, "radius":170000},
            {"id":7, "x":106.005868,  "y":38.125725, "radius":160000},
            {"id":8, "x":107.545122,  "y":34.951701, "radius":130000},
            {"id":9, "x":110.411982,  "y":31.777678, "radius":150000},
            {"id":10, "x":113.019257, "y":28.194103, "radius":130000},
            {"id":11, "x":116.535467, "y":26.871059, "radius":110000},
            {"id":12, "x":117.470083, "y":23.943192, "radius":100000}];
        var map, clickLayer,sr;
        var index = 0,t=0;
        require([
                "esri/map",
                "esri/layers/ArcGISDynamicMapServiceLayer",
                "esri/layers/GraphicsLayer",
                "esri/symbols/PictureMarkerSymbol",
                "esri/symbols/SimpleLineSymbol", //简单线符号
                "esri/symbols/SimpleMarkerSymbol",
                "esri/symbols/SimpleFillSymbol",
                "esri/geometry/Circle",
                "esri/geometry/Polyline",
                "esri/graphic",
                "dojo/_base/Color",
                "esri/geometry/Point",
                "dojo/on",
                "dojo/dom",
                "dojo/domReady!"],
            function(Map,
                     ArcGISDynamicMapServiceLayer,
                     GraphicsLayer,
                     PictureMarkerSymbol,
                     SimpleLineSymbol,
                     SimpleMarkerSymbol,
                     SimpleFillSymbol,
                     Circle,
                     Polyline,
                     Graphic,
                     Color,
                     Point,
                     on,
                     dom
            ) {
                map = new Map("map");
                var tiled = new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/firstTest/firstService/MapServer");
                map.addLayer(tiled, 0);
                sr = map.spatialReference;
                var mapCenter = new Point(103.847, 36.0473, sr);
                map.centerAndZoom(mapCenter);

                clickLayer = new GraphicsLayer({"id":"clickLayer"});
                map.addLayer(clickLayer);
                on(dom.byId("addPath"), "click", function(){
                    console.log(path);
                    addPath();
                });
                function addPath(){
                    var sms =  new SimpleMarkerSymbol({
                        "color": [255,0,0,255],
                        "size": 4,
                        "angle": -30,
                        "xoffset": 0,
                        "yoffset": 0,
                        "type": "esriSMS",
                        "style": "esriSMSCircle",
                        "outline": {
                            "color": [255,0,0,255],
                            "width": 1,
                            "type": "esriSLS",
                            "style": "esriSLSSolid"
                        }
                    });
                    var sls = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
                        new Color([255, 0, 0]),
                        2
                    );
                    var sfs = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
                        new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASHDOT,
                            new Color([32,149,217,0.6]), 2),new Color([32,149,217,0.6])
                    );
                    var ptStart = new Point(path[index].x, path[index].y, sr);
                    var ptEnd   = new Point(path[index+1].x, path[index+1].y, sr);
                    var gPtStart = new Graphic(
                        ptStart,
                        sms
                    );
                    var gCircleStart = new Graphic(
                        new Circle(ptStart, {"radius":path[index].radius}),
                        sfs
                    );
                    var gPtEnd = new Graphic(
                        ptEnd,
                        sms
                    );
                    var gCircleEnd = new Graphic(
                        new Circle(ptEnd, {"radius":path[index+1].radius}),
                        sfs
                    );
                    var polylineJson = {
                        "paths":[[[path[index].x,path[index].y], [path[index+1].x,path[index+1].y]]],
                        "spatialReference":{"wkid":4326}

                    };
                    var gLine = new Graphic(
                        new Polyline(polylineJson),
                        sls
                    );
                    clickLayer.add(gLine);
                    if(index<path.length-1){
                        clickLayer.add(gCircleEnd);
                        clickLayer.add(gPtEnd);
                    }
                    if(index === 0)
                    {
                        clickLayer.add(gCircleStart);
                        clickLayer.add(gPtStart);
                    }

                    if(index<path.length-2){
                        index++;
                        setTimeout(function () {
                            addPath();
                        },1000);
                    }

                }
            });


    </script>
</head>

<body>
<div id="map">
    <button id="addPath" type="button" style="position: absolute; top: 10pt; right: 15pt; z-index: 99;">添加路径</button>
</div>
</body>
</html>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ArcGIS JavaScript 4.x 的离线 API 文档是指 ArcGIS JavaScript API 的文档资源,这些资源可以在没有网络连接的情况下访问和使用。离线 API 文档主要用于开发人员在没有网络连接或者需要在限制网络访问的环境中进行开发。 ArcGIS JavaScript 4.x 的离线 API 文档可以通过以下方式获取和使用: 1. 下载离线文档:官方提供了 ArcGIS JavaScript 4.x 的离线文档下载链接,可以将文档下载保存到本地,然后在没有网络连接的情况下通过本地浏览器打开并查看文档。 2. 安装离线文档工具:有一些第三方工具可以将在线 API 文档转换为离线文档形式,开发人员可以选择合适的工具,将 ArcGIS JavaScript 4.x 的在线文档下载到本地,并使用本地浏览器查看。 离线 API 文档提供了 ArcGIS JavaScript 4.x API 所有的类、方法、属性以及示例代码的详细说明和使用方式。开发人员可以通过离线 API 文档来了解和学习如何使用 ArcGIS JavaScript 4.x API 进行地图开发、数据可视化等工作。 在离线开发环境中,使用离线 API 文档可以提高开发效率和便捷性,无需依赖于网络连接和在线文档资源。开发人员可以随时随地访问和查阅文档,避免了对网络的依赖和延迟。 总之,ArcGIS JavaScript 4.x 的离线 API 文档是一种方便开发人员在没有网络连接的情况下学习和使用 ArcGIS JavaScript 4.x API 的工具资源,可以提高开发效率和便捷性。 ### 回答2: ArcGIS JavaScript 4.x的离线API文档是指提供给开发者在没有网络连接的情况下访问API文档的一种资源。由于ArcGIS JavaScript API是基于Web的技术开发的,通常情况下需要通过网络连接来获取最新的API文档。但在某些情况下,开发者可能会面临无法连网的情景,因此需要能够离线访问API文档。 为了解决这个问题,Esri(ArcGIS的开发公司)提供了ArcGIS JavaScript 4.x离线API文档的解决方案。该离线API文档以HTML格式提供,可以在本地计算机上进行访问。开发者可以下载这个离线文档,并在没有网络连接的环境下通过浏览器打开和查看它。 离线API文档包含有关ArcGIS JavaScript 4.x API的所有类、方法、属性和事件的详细说明,开发者可以根据自己的需要浏览和查询。此外,它还提供了示例代码、用法示例和参考资料,帮助开发者更好地理解和使用API。 离线API文档的使用方法很简单。只需将离线文档下载到本地计算机上,然后使用支持HTML的浏览器(如Chrome、Firefox等)打开它。在文档中,开发者可以通过导航栏或搜索框来浏览或搜索特定的类或方法。找到目标内容后,可以点击链接进入详细的说明页面,其中包含如何使用相关API的信息。 总之,ArcGIS JavaScript 4.x的离线API文档为开发者在没有网络连接的情况下提供了非常便捷的查询和浏览API文档的解决方案,使开发工作更加灵活和高效。 ### 回答3: ArcGIS JavaScript 4.x的离线API文档提供了在没有网络连接的情况下使用ArcGIS JavaScript API的指南和参考。这个文档可用于下载并安装在本地计算机上,提供了对API类、属性、方法和事件的说明。它包含了API的核心功能和各种模块的文档,以帮助开发人员在离线环境下使用ArcGIS JavaScript API构建应用程序。 这个离线API文档具有以下特点: 1. 完整的API参考:提供了对ArcGIS JavaScript API所有类、属性、方法和事件的详细描述,并包含了示例代码和参数说明,方便开发人员进行开发和调试。 2. 示例和教程:文档中包含了一些常见的示例和教程,帮助开发人员快速了解如何使用API实现各种功能,如地图显示、图层操作、空间分析等。 3. 离线使用:这个API文档可以下载并安装在本地计算机上,无需网络连接即可访问,非常适用于无网络环境或者需要频繁离线访问API文档的开发人员。 4. 更新和维护:ArcGIS JavaScript 4.x的离线API文档与在线文档同步更新,确保获取到最新的API文档信息,并及时修复错误和更新内容。 总之,ArcGIS JavaScript 4.x的离线API文档是一个非常有用的资源,可以帮助开发人员在无网络环境下使用ArcGIS JavaScript API进行开发和调试,并提供了对API类、属性、方法和事件的详细说明,以及示例和教程帮助开发人员快速上手。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值