說明:先准備好一個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 >