如何在ArcGIS API for JavaScript中画两点之间的线

如何在ArcGIS API for JavaScript中画两点之间的线,javascript,gis,arcgis,esri,arcgis-js-api,Javascript,Gis,Arcgis,Esri,Arcgis Js Api,我想在两点之间划一条线。我尝试了各种符号组合(SimpleLineSymbol、MaptographicLineSymbol)和多段线几何体及其构造函数,但是(在开放式街道地图上)不会显示线 这里有一个尝试: var lineSymbol = new CartographicLineSymbol( CartographicLineSymbol.STYLE_SOLID, new Color([255,0,0]), 10, Ca

我想在两点之间划一条线。我尝试了各种符号组合(SimpleLineSymbol、MaptographicLineSymbol)和多段线几何体及其构造函数,但是(在开放式街道地图上)不会显示线

这里有一个尝试:

      var lineSymbol = new CartographicLineSymbol(
          CartographicLineSymbol.STYLE_SOLID,
          new Color([255,0,0]), 10,
          CartographicLineSymbol.CAP_ROUND,
          CartographicLineSymbol.JOIN_MITER, 5
        );

       var lineGeometry = new Polyline(new SpatialReference({wkid:4326}));
       lineGeometry.addPath([[0,0], [10,0]])

       var lineGraphic = new Graphic(lineGeometry, lineSymbol);
       gl.add(lineGraphic)
看起来这应该很简单。你知道会发生什么吗


试试这段代码。我让它适用于各种线路

 var map, toolbar, symbol, geomTask;

  require([
    "esri/map", 
    "esri/toolbars/draw",
    "esri/graphic",

    "esri/symbols/SimpleMarkerSymbol",
    "esri/symbols/SimpleLineSymbol",
    "esri/symbols/SimpleFillSymbol",

    "dojo/parser", "dijit/registry",

    "dijit/layout/BorderContainer", "dijit/layout/ContentPane", 
    "dijit/form/Button", "dijit/WidgetSet", "dojo/domReady!"
  ], function(
    Map, Draw, Graphic,
    SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol,
    parser, registry
  ) {
    parser.parse();

    map = new Map("map", {
      basemap: "streets",
      center: [-15.469, 36.428],
      zoom: 3
    });

    map.on("load", createToolbar);

    // loop through all dijits, connect onClick event
    // listeners for buttons to activate drawing tools
    registry.forEach(function(d) {
      // d is a reference to a dijit
      // could be a layout container or a button
      if ( d.declaredClass === "dijit.form.Button" ) {
        d.on("click", activateTool);
      }
    });

    function activateTool() {
      var tool = this.label.toUpperCase().replace(/ /g, "_");
      toolbar.activate(Draw[tool]);
      map.hideZoomSlider();
    }

    function createToolbar(themap) {
      toolbar = new Draw(map);
      toolbar.on("draw-end", addToMap);
    }

    function addToMap(evt) {
      var symbol;
      toolbar.deactivate();
      map.showZoomSlider();
      switch (evt.geometry.type) {
        case "point":
        case "multipoint":
          symbol = new SimpleMarkerSymbol();
          break;
        case "polyline":
          symbol = new SimpleLineSymbol();
          break;
        default:
          symbol = new SimpleFillSymbol();
          break;
      }
      var graphic = new Graphic(evt.geometry, symbol);
      map.graphics.add(graphic);
    }
  });

问题是我的图书馆的排序问题。我需要将ESRI颜色库移到requires列表中一些dojo图表库的上方。我将很快更新我的答案。这是一个非常模糊的库冲突,因为没有发生错误(遗憾的是,我花了太多的时间调试…)

这只是JSFIDLE中的一个输入错误。第二个点缺少y值

请参见下面一个带有y值的更新JSFIDLE。我还调整了缩放级别,以便您可以看到线条。请记住,对于每个点,第一个值是x(4326中的经度),第二个值是y(4326中的纬度)


没有。我有所有正确的包含/要求。但是我想要预定义的线,我不想点击画线:\n你有解决方案吗…?谢谢你的提醒。我还试图调试它为什么不能用于预定义的行。
lineGeometry.addPath([[0,0], [10,]])