请问如何基于web edition 实现以下功能:
(1)首先可以根据道路名称查询(支持模糊查询)点击 定位系统会追到当前查询出的位置并且闪烁表示。
(2) 位置查询 (比如某个建筑物名称,支持模糊查询)点击定位系统追到当前查询位置闪烁表示
(3) 缓冲区查询
设定半径为多少米,查询出来的属性以列表形式显示并且点击某一属性闪烁定位。
功能界面见附件,示例代码如下:
/*
框选---------------------------------------------------- */
function initToolbar() {
tb = new esri.toolbars.Draw(MyMap);
tb.on(“draw-end”, addGraphic);
//事件委托,所以单击处理程序不每个按钮所需的
dojo.on(dojo.dom.byId(“toobar”), “click”, function (evt)
{
if (evt.target.id === “toobar”) {
return;
}
var tool = evt.target.id.toLowerCase();
MyMap.disableMapNavigation();
tb.activate(tool);
});
}
function addGraphic(evt) {
//关闭工具栏,清除现有的图形
tb.deactivate();
MyMap.enableMapNavigation();
//用的哪种符号
var
symbol;
if
(evt.geometry.type === “point” || evt.geometry.type === “multipoint”)
{
symbol = markerSymbol;
}
else if (evt.geometry.type === “line” || evt.geometry.type === “polyline”)
{
symbol = lineSymbol;
}
else
{
symbol = fillSymbol;
}
MyMap.graphics.add(new esri.Graphic(evt.geometry, symbol));
qureyTask_geometry(evt.geometry);
}
function SetSymbol( )
{
initToolbar();
var
markerSymbol = new esri.symbols.SimpleMarkerSymbol();
markerSymbol.setColor(new esri.Color("#00FFFF"));
//
用于手绘折线线符号,线和线。
var
lineSymbol = new esri.symbols.CartographicLineSymbol(
esri.symbols.CartographicLineSymbol.STYLE_SOLID,
new esri.Color([255, 0, 0]), 10,
esri.symbols.CartographicLineSymbol.CAP_ROUND,
esri.symbols.CartographicLineSymbol.JOIN_MITER, 5
);
//
填充符号用于范围,多边形和手绘多边形,使用图片填充符号
//图像文件夹包含额外的填充图像,另一个选择:sand.png,swamp.png或stiple.png
fillSymbol = new esri.symbols.PictureFillSymbol(
“Images/log.png”,
new esri.symbols.SimpleLineSymbol(
esri.symbols.SimpleLineSymbol.STYLE_SOLID,
new esri.Color(’#000’),
1
),
42,
42
);
}
/* 框选查询 结果 */
function qureyTask_geometry(g) {
var
queryTask = new esri.tasks.QueryTask(“数据源”);
var
query = new esri.tasks.Query();
query.returnGeometry = true;
query.outFields = ["*"];
query.geometry = g;
queryTask.execute(query, showResults);
function
showResults(results) {
var resultItems = [];
var resultCount = results.features.length;
if (resultCount > 0) {
for (var i = 0; i < resultCount; i++) {
var featureAttributes = results.features.attributes;
for (var attr in resultItems.push("" } resultItems.push(” }
featureAttributes) {
+ attr + “: " +
featureAttributes[attr] + “
”);
");
}
}
else
alert(“数量” + resultCount);
dojo.dom.byId(“qurey”).innerHTML = resultItems.join("");
};
001_command.doc (832 KB)