说明:先准备好一个FLY工程文件,其中要加载一个相对标准的SHP文件,自己参考其他部分实现绘制几何对象的方法;
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< title ></ title >
< script type ="text/javascript" language ="javascript" >
// 遍历整个图层
// zhaohe.2012.09.25.
function GetFeatureAll() {
var strResult = " <table> " ;
var SGWorld = CreateSGObj();
var ItemID = SGWorld.ProjectTree.FindItem( " Fairfax_zones " );
var obj = SGWorld.ProjectTree.GetLayer(ItemID);
// 遍历当前图层中已经在地图上加载的全部对象及其属性
var pIFeatureGroup = obj.FeatureGroups( 0 );
for ( var i = 0 ; i < pIFeatureGroup.Count; i ++ ) {
strResult = strResult + " <tr> " ;
var pIFeature = pIFeatureGroup.Item(i);
for ( var j = 0 ; j < pIFeature.FeatureAttributes.Count; j ++ ) {
var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);
strResult = strResult + " <td> " + pIFeatureAttribute.Name + " * " + pIFeatureAttribute.Value + " </td> " ;
}
strResult = strResult + " </tr> " ;
}
strResult = strResult + " </table> " ;
window.document.getElementById( " result " ).innerHTML = strResult;
}
// 多边形查询
// zhaohe.2012.09.25.
function GetFeatureWithPoly() {
var strResult = " <table> " ;
var SGWorld = CreateSGObj();
var ItemID = SGWorld.ProjectTree.FindItem( " Fairfax_zones " );
var obj = SGWorld.ProjectTree.GetLayer(ItemID);
// 遍历多边形内选中的对象及其属性
var qItemID = SGWorld.ProjectTree.GetNextItem( 0 , 10 );
var qobj = SGWorld.ProjectTree.GetObject(qItemID);
var queryGeometry = qobj.Geometry;
var resFeatures = obj.ExecuteSpatialQuery(queryGeometry, 1 );
for ( var i = 0 ; i < resFeatures.Count; i ++ ) {
strResult = strResult + " <tr> " ;
var pIFeature = resFeatures.Item(i);
for ( var j = 0 ; j < pIFeature.FeatureAttributes.Count; j ++ ) {
var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);
strResult = strResult + " <td> " + pIFeatureAttribute.Name + " * " + pIFeatureAttribute.Value + " </td> " ;
}
strResult = strResult + " </tr> " ;
}
strResult = strResult + " </table> " ;
window.document.getElementById( " result " ).innerHTML = strResult;
}
// 属性查询
// zhaohe.2012.09.25.
function GetFeatureWithPro() {
var SGWorld = CreateSGObj();
var ItemID = SGWorld.ProjectTree.FindItem( " Fairfax_zones " );
var obj = SGWorld.ProjectTree.GetLayer(ItemID);
var clause = window.document.getElementById( " Text1 " ).value;
if (clause == "" ) {
obj.Filter = clause;
obj.Streaming = 1 ;
obj.Refresh();
}
else {
obj.Filter = clause;
obj.Streaming = 0 ;
obj.Refresh();
}
GetFeatureAll();
}
/*
功能: 创建sgworld对象
备注: 赵贺 2011.04.01.
*/
function CreateSGObj() {
var obj = $( " sgworld " );
if (obj == null ) {
obj = document.createElement( ' object ' );
document.body.appendChild(obj);
obj.name = " sgworld " ;
obj.id = " sgworld " ;
obj.classid = " CLSID:3a4f91b0-65a8-11d5-85c1-0001023952c1 " ;
}
return obj;
}
function $(id) {
return window.document.getElementById(id);
}
</ script >
</ head >
< body >
< table >
< tr >
< td colspan ="4" >
< input id ="Button1" type ="button" value ="全部Feature" onclick ="GetFeatureAll()" />
< input id ="Button2" type ="button" value ="空间查询" onclick ="GetFeatureWithPoly()" />
</ td >
</ tr >
< tr >
< td colspan ="4" >
< input id ="Text1" type ="text" value ="Class=3" />
< input id ="Button6" type ="button" value ="属性查询" onclick ="GetFeatureWithPro()" />
</ td >
</ tr >
< tr >
< td >
< div id ="result" >
</ div >
</ td >
</ tr >
</ table >
</ body >
</ html >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< title ></ title >
< script type ="text/javascript" language ="javascript" >
// 遍历整个图层
// zhaohe.2012.09.25.
function GetFeatureAll() {
var strResult = " <table> " ;
var SGWorld = CreateSGObj();
var ItemID = SGWorld.ProjectTree.FindItem( " Fairfax_zones " );
var obj = SGWorld.ProjectTree.GetLayer(ItemID);
// 遍历当前图层中已经在地图上加载的全部对象及其属性
var pIFeatureGroup = obj.FeatureGroups( 0 );
for ( var i = 0 ; i < pIFeatureGroup.Count; i ++ ) {
strResult = strResult + " <tr> " ;
var pIFeature = pIFeatureGroup.Item(i);
for ( var j = 0 ; j < pIFeature.FeatureAttributes.Count; j ++ ) {
var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);
strResult = strResult + " <td> " + pIFeatureAttribute.Name + " * " + pIFeatureAttribute.Value + " </td> " ;
}
strResult = strResult + " </tr> " ;
}
strResult = strResult + " </table> " ;
window.document.getElementById( " result " ).innerHTML = strResult;
}
// 多边形查询
// zhaohe.2012.09.25.
function GetFeatureWithPoly() {
var strResult = " <table> " ;
var SGWorld = CreateSGObj();
var ItemID = SGWorld.ProjectTree.FindItem( " Fairfax_zones " );
var obj = SGWorld.ProjectTree.GetLayer(ItemID);
// 遍历多边形内选中的对象及其属性
var qItemID = SGWorld.ProjectTree.GetNextItem( 0 , 10 );
var qobj = SGWorld.ProjectTree.GetObject(qItemID);
var queryGeometry = qobj.Geometry;
var resFeatures = obj.ExecuteSpatialQuery(queryGeometry, 1 );
for ( var i = 0 ; i < resFeatures.Count; i ++ ) {
strResult = strResult + " <tr> " ;
var pIFeature = resFeatures.Item(i);
for ( var j = 0 ; j < pIFeature.FeatureAttributes.Count; j ++ ) {
var pIFeatureAttribute = pIFeature.FeatureAttributes.Item(j);
strResult = strResult + " <td> " + pIFeatureAttribute.Name + " * " + pIFeatureAttribute.Value + " </td> " ;
}
strResult = strResult + " </tr> " ;
}
strResult = strResult + " </table> " ;
window.document.getElementById( " result " ).innerHTML = strResult;
}
// 属性查询
// zhaohe.2012.09.25.
function GetFeatureWithPro() {
var SGWorld = CreateSGObj();
var ItemID = SGWorld.ProjectTree.FindItem( " Fairfax_zones " );
var obj = SGWorld.ProjectTree.GetLayer(ItemID);
var clause = window.document.getElementById( " Text1 " ).value;
if (clause == "" ) {
obj.Filter = clause;
obj.Streaming = 1 ;
obj.Refresh();
}
else {
obj.Filter = clause;
obj.Streaming = 0 ;
obj.Refresh();
}
GetFeatureAll();
}
/*
功能: 创建sgworld对象
备注: 赵贺 2011.04.01.
*/
function CreateSGObj() {
var obj = $( " sgworld " );
if (obj == null ) {
obj = document.createElement( ' object ' );
document.body.appendChild(obj);
obj.name = " sgworld " ;
obj.id = " sgworld " ;
obj.classid = " CLSID:3a4f91b0-65a8-11d5-85c1-0001023952c1 " ;
}
return obj;
}
function $(id) {
return window.document.getElementById(id);
}
</ script >
</ head >
< body >
< table >
< tr >
< td colspan ="4" >
< input id ="Button1" type ="button" value ="全部Feature" onclick ="GetFeatureAll()" />
< input id ="Button2" type ="button" value ="空间查询" onclick ="GetFeatureWithPoly()" />
</ td >
</ tr >
< tr >
< td colspan ="4" >
< input id ="Text1" type ="text" value ="Class=3" />
< input id ="Button6" type ="button" value ="属性查询" onclick ="GetFeatureWithPro()" />
</ td >
</ tr >
< tr >
< td >
< div id ="result" >
</ div >
</ td >
</ tr >
</ table >
</ body >
</ html >