如何在ArcGIS API for JavaScript中画两点之间的线
我想在两点之间划一条线。我尝试了各种符号组合(SimpleLineSymbol、MaptographicLineSymbol)和多段线几何体及其构造函数,但是(在开放式街道地图上)不会显示线 这里有一个尝试:如何在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
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,]])