ThinkGeo.com    |     Documentation    |     Premium Support

功能需求与示例代码

请问如何基于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
featureAttributes) {


                    resultItems.push(""
+ attr + “:
  " +
featureAttributes[attr] + “

”);


                }


                resultItems.push(”

");


           
}


       
}


       
else


           
alert(“数量” + resultCount); 


       
dojo.dom.byId(“qurey”).innerHTML = resultItems.join("");


    }


};



001_command.doc (832 KB)

Wang,



I found this is a duplicate thread in several days ago and our Chinese colleague has replied it, please check here. thinkgeo.com/forums/MapSuite…fault.aspx



As for your requirement, looks like this is similar with our site selection sample except the searching. You can download it from product center or download it direct from wiki.thinkgeo.com/wiki/File:…ion_CS.zip







Please let us know if any questions.



Thanks,



Troy

代码下载编译后,在

worldMapKitWmsRoadOverlay.MapType = WorldMapKitMapType.Road;行出现

error CS1061: “ThinkGeo.MapSuite.WebEdition.WorldMapKitWmsWebOverlay”不包含“MapType”的定义,并且找不到可接受类型为“ThinkGeo.MapSuite.WebEdition.WorldMapKitWmsWebOverlay”的第一个参数的扩展方法“MapType”(是否缺少 using 指令或程序集引用?),

并不缺少using指令和引用,且出现当前上下文中不存在名称“WorldMapKitMapType”,

不知道这个错误是什么原因?

Wang,


你好,出现这个错误原因是因为你可能引用的是map
suite 8.0版本的dll,而WorldMapKitMapType是在9.0以后才添加。为了正常运行SiteSelection sample,请下载我们的产品管理客户端product center 9.0,在里面可以拿到所有产品的9.0版本。下载地址请点击download.thinkgeo.com/ThinkGeoProductCenter.msi


Thanks,

Kevin