如何在ArcGIS API的两点之间画一条线
How to draw a line between two points in ArcGIS API for JavaScript
我试着在两点之间画一条线。我已经尝试了符号的每一个组合(simplelinesymsymbol, cartographiclinesymsymbol)和Polyline几何及其构造函数,但一条线不会显示在(在开放的街道地图上)。
这里有一个尝试:
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)
看起来应该很简单。知道是怎么回事吗?
JsFiddle
试试这段代码。我让它对所有的行都有效。
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);
}
});
这只是JSFiddle中的一个错别字。你漏掉了第二个点的y值
见下面更新的JSFiddle的y值。我还调整了缩放级别,这样你就能看到那条线了。请记住,对于每个点,第一个值是x(4326中的经度),第二个值是y(4326中的纬度)。
lineGeometry.addPath([[0,0], [10,]])
http://jsfiddle.net/rkgtv8ho/2/分享
问题是我的库的顺序。我需要将ESRI颜色库移动到需要列表中的一些dojo图表库之上。我会尽快更新我的答案。这是一个超级模糊的库冲突,因为没有发生错误(遗憾的是,我花了几个小时的时间来调试…)
相关文章:
- PaperJS-两点之间的角度
- 铯JS-两点之间的距离
- 查找图像上两点之间的距离,即使缩放图像也是如此
- 如何使用谷歌地图几何库查找两点之间的距离
- 在 JavaScript 中的两点之间查找和替换
- 谷歌地图中两点之间的多条折线
- 在谷歌地理图中绘制两点之间的曲线
- 只需显示两点之间的距离(KM)
- 删除两点之间的所有HTML
- 寻找一种方法在 Three.js 中的球体上的两点之间画一条线
- 如何使用 javascript 选择视口中两点之间的所有内容
- 更改画布线,或两点之间的调整线
- 如何计算两点之间的小时数;HHmm'在Javascript中
- HTML5画布,如何显示两点之间的动画攻击
- 检查两点之间的坐标点
- 如何在拉斐尔画两点之间的线
- 两点之间的距离谷歌地图a是未定义的api v3
- 获取二维数组JavaScript中两点之间的距离
- 在两点之间找到最短的路
- 在JavaScript中获取两点之间的文本