This example shows how to find records using an SQL-like expression:
// get layer var Layer = Map.getLayers().getLayerByName("Cities"); var searchDef = Server.CreateObject("RMIMS.SearchDef"); // select locations by the expression (see Appendix A) searchDef.setExpression( 'Capital = "Y"'); // specify the fields you want to retrieve (all fields by default) searchDef.setFields( "Area Name, State, County"); //returns the Recordset object var rs = Layer.search( searchDef);
The following example will display only the selected records on the map:
// get layer var Layer = Map.getLayers().getLayerByName("Cities"); var Renderer = Layer.getRenderer(); // add new RendererItem var RItem = Renderer.addItem(); // select locations by the expression (see Appendix A) RItem.setExpr( 'Capital = "Y"'); // set font attributes var font = RItem.getFont(); var color = Server.CreateObject("RMIMS.Utils").createColor(0, 0, 255); //blue font.setColor( color); font.setSize( 10); font.setBold(true); RItem.setFont( font); RItem.setFontMask( rmFontColor | rmFontSize | rmFontBold); // set symbol attributes var symbol = RItem.getSymbol(); symbol.setSymbolStyle("std:circle"); // see Appendix D color = Server.CreateObject("RMIMS.Utils").createColor(255, 0, 0) //red symbol.setColor( rmSymbolColor, color); symbol.setSize( 16); RItem.setSymbol( symbol); RItem.setSymbolMask( rmSymbolColor_1 | rmSymbolStyle | rmSymbolSize); RItem.setMinMaxZoomLevel( rmMinZoomLevel, rmMaxZoomLevel); // add new RendererItem var RItem2 = Renderer.addItem(); // select all records except the records specified above RItem2.setExpr( 'Capital <> "Y"'); //see Appendix A // hide symbols and labels var symbol2 = RItem2.getSymbol(); symbol2.setSymbolStyle("std:null"); //see Appendix D RItem2.setLabelVisible( false); RItem2.setSymbolMask(rmSymbolStyle); RItem2.setMinMaxZoomLevel( rmMinZoomLevel, rmMaxZoomLevel);
This example shows another way to do the same thing.
1) Make all the symbols of the layer invisible: start Map Author, open map, select layer,
then Edit -> Layer Properties -> Multiple -> Select -> All -> Symbol/Line/Fill ->
uncheck Visible;
2) Use this code to display the specified locations:
// get layer var Layer = Map.getLayers().getLayerByName("Cities"); var Renderer = Layer.getRenderer(); // add new RendererItem var RItem = Renderer.addItem(); // select locations by the expression (see Appendix A) RItem.setExpr( 'Capital = "Y"'); // set font attributes var font = RItem.getFont(); var color = Server.CreateObject("RMIMS.Utils").createColor(0, 0, 255); //blue font.setColor( color); font.setSize( 10); RItem.setFont( font); RItem.setFontMask( rmFontColor | rmFontSize); // set symbol attributes var symbol = RItem.getSymbol(); symbol.setSymbolStyle("std:circle"); //see Appendix D color = Server.CreateObject("RMIMS.Utils").createColor(255, 0, 0) //red symbol.setColor( rmSymbolColor, color); symbol.setSize( 16); RItem.setSymbol( symbol); RItem.setSymbolMask( rmSymbolColor_1 | rmSymbolStyle | rmSymbolSize); RItem.setMinMaxZoomLevel( rmMinZoomLevel, rmMaxZoomLevel);
The result should look like this:
Here is a brief explanation of how to use the external data source feature. The RouteMAP IMS 3.0 supports the following external databases: dBASE, Microsoft Access, SQL Server, and Oracle.
A) Installation Instructions:
[Data Source Name] DsDllPath=ExtDS.dll
B) Usage
var ds = Server.CreateObject( "RMIMS.ParameterList" ); ds.add("DataSource", "Data Source Name" ); // Select the Fields from your database that you would like displayed during a // Find Nearest. The Label/Name, Lat, Long fields are required. The rest are optional. var strSQL = "select Name, latitude, longitude,Address,City,State,Zip from tableName";
// Note: the actual name of the dbf file is in the SQL Query // IE. If you have the file "c:\my_database\database.dbf" Your // SQL Query would look like "select name, latitude, longitude from database" // and the "FilePath" would be "c:\\my_database\\" ds.add("DataSourceType","File"); ds.add("ODBCDriver","Microsoft dBASE Driver (*.dbf)"); ds.add("FilePath","d:\\my_database\\");
ds.add("DataSourceType","File"); ds.add("ODBCDriver","Microsoft Access Driver (*.mdb)"); ds.add("FilePath","c:\\my_database\\database.mdb");
ds.add("DataSourceType","SQL"); ds.add("ODBCDSN","Your ODBC Data Source Name"); ds.add("ODBCUsername","Username"); ds.add("ODBCPassword","");
ds.add("SQLStatement",strSQL); ds.add("IconFile","c:\\my_icons\\icon1.bmp"); ds.add("LabelField","Name"); ds.add("LatField","latitude"); ds.add("LonField","longitude");
ds.add("UrlField",""); ds.add("IconSize","8"); // Default is 10
Map.getLayers().addDynamicLayer(ds);