Displays and LIDAR Data Analysis (. LAS) in ArcGIS 10.1

One of the things new in ArcGIS 10.1 is the ability to display, updating and analysis of LIDAR data (light detection and ranging), which has a *. LAS file format. LAS format files with the extension is the interchange format as an alternative to ASCII (*. ASC) file that is currently widely used. About LIDAR can you read through wikipedia.

LAS file format for LIDAR data is said to reduce the file size by 35% to 80% compared to an ASCII file. LAS file this small impact on the speed of your computer to open and process the file. Video below is a presentation of the use of LIDAR data in ArcGIS 10.1 on when ESRI User Conference last month.

via ArcGIS Video
If you are a user of ArcGIS ArcGIS 9.x or 10 who want to display the LIDAR data in LAS format, can use a free utility from GeoCue named LAS Reader for ArcGIS.

Download LAS Reader for ArcGIS disini

Create Polygon Tool in MapXtreme

Polyon tool used to draw the polygons directly on the map. To create this tool, do the same by creating a polyline tool or point tool. What distinguishes the class is used to create the object. If the polyline using the class 'MultiCurve' then the polygon using the class 'MultiPolygon'.

The steps are the same as making polyline, lives changed in part that serves to draw polyline in serializable class, to draw a polygon.
view source
1 Dim mp As New MultiPolygon MultiPolygon = (_peta.GetDisplayCoordSys (), _
2 CurveSegmentType.Linear, dPoints)
3 Dim As the New SimpleInterior SimpleInterior = (8, Drawing.Color.Blue, _
4 Drawing.Color.White, False)
5 Dim f As New Feature (mp, si)

For toolnya property, use the tool "PolygonSelectionTool", and change propertynya

The results are as follows:

This program is just the basics alone. For a more advanced tool, please be modified

Map Showing Different In One Application MapXtreme

Different maps here means, if we have two or more maps that are not related. For example if the first map appears, then the second map is omitted, or if the maps both show the first map is removed or the first map to use the administrative boundary map are both using the other boundary so that both maps are treated differently. There are at least two ways to make this kind of thing

* Create different MWS file. Each map is made MWS tersediri
* Create a file folder MWS with several aliases.

Here I write about the second way, using a file MWS for some maps.

Preparing File MWS
Note the picture below MWS file. Open the workspace manager, and create a file MWS. By default there is only one folder, "Map1". Add the map layer on Map1. Click the Maps button, and add Map2. In Map2 add other map layers.


Map 2

There are two folders (mapalias), Map1 and map2. Each folder has a different map layout. We can add another layer in each folder, here I just use a single map layer.

Setting up WebSite Project
Create a new website, use the MapXtreme template. Add the following radio button list on file Mapform.aspx (Default.aspx).
view source

At the MapControl, empty property MapAlias. So the code becomes as follows
view source

Open the codebehind file, add a method for the event radiobuttonlist
view source
1 Protected Sub RadioButtonList1_SelectedIndexChanged (ByVal sender As Object, ByVal e As System.EventArgs) _
2 Handles RadioButtonList1.SelectedIndexChanged
3 MapControl1.MapAlias ​​= RadioButtonList1.SelectedValue
4 End Sub

And in the Page_Load event, add the following code, to determine which folder alias that will be loaded by mapcontrol first. If not set, usually called the Map1.
view source
1 If Not Page.IsPostBack Then
2 MapControl1.MapAlias ​​= RadioButtonList1.SelectedValue
3 End If

Run the application, the initial display is the map of Java (Map1), all information map1 like coordinate system, the position of center map, zoom range will be stored in the session. When kalimantan selected, the map turned into a central position map kalimantan but still refers to Map1 (Java). Because the information stored in the session information is for map1

When Kalimantan (Map2) is selected, the object map that is stored in the session is still a Java map (Map1), because Map1 and Map2 have the same coordinate system (WGS84) then map2 can be displayed with the map center position in accordance with map1.

This error is caused because the two maps using the same session object. To avoid this error, information of each map is stored in a different session objects. If the application created using state methods manual (StateServer), we need to change the map information storage procedures in the session. Open the file AppStateManager.vb, modifications and RestoreState saveState method, more or less be like this.
view source
01 Public Overrides Sub saveState ()
02 mapAlias ​​Dim As String = ParamsDictionary (ActiveMapAliasKey)
03 Dim map As Map = GetMapObj (mapAlias)
05 If Not folder Is Nothing Then
06 If mapAlias ​​= "Map1" Then
07 ManualSerializer.SaveMapXtremeObjectIntoHttpSession (map.Center, "center")
08 ManualSerializer.SaveMapXtremeObjectIntoHttpSession (map.Layers, "Layers")
09 ManualSerializer.SaveMapXtremeObjectIntoHttpSession (_
10 MapInfo.Engine.Session.Current.Selections.DefaultSelection, "Selection")
11 'Mark the users HttpSession as dirty
12 HttpContext.Current.Session ("UserDirtyFlag") = True
13 Else
14 ManualSerializer.SaveMapXtremeObjectIntoHttpSession (map.Center, "center2")
15 ManualSerializer.SaveMapXtremeObjectIntoHttpSession (map.Layers, "Layers2")
16 ManualSerializer.SaveMapXtremeObjectIntoHttpSession (_
17 MapInfo.Engine.Session.Current.Selections.DefaultSelection, "Selection2")
18 'Mark the users HttpSession as dirty
19 HttpContext.Current.Session ("UserDirtyFlag") = True
20 End If
21 End If
22 End Sub
24 Public Overrides Sub RestoreState ()
25 mapAlias ​​Dim As String = ParamsDictionary (ActiveMapAliasKey)
26 Dim map As Map = GetMapObj (mapAlias)
28 If (Not IsDirtyMapXtremeSession (map)) Then
29 SaveDefaultState (map)
30 End If
32 'If it was the user's first-time and the session is dirty, restore the default state.
33 If IsUsersFirstTime () Then
34 If IsDirtyMapXtremeSession (folder) Then
35 RestoreDefaultState (map)
36 End If
37 Else
38 If (IsDirtyMapXtremeSession (map)) Then
39 'TODO: Manual dirty work to prepare the MapXtreme Session instance Pooled
40 Else
41 'TODO: Manual work to prepare the clean Pooled MapXtreme Session instance
42 End If
44 If mapAlias ​​= "Map1" Then
45 'RestoreZoomCenterState (map)
46 ManualSerializer.RestoreMapXtremeObjectFromHttpSession ("center")
47 ManualSerializer.RestoreMapXtremeObjectFromHttpSession ("Layers")
48 ManualSerializer.RestoreMapXtremeObjectFromHttpSession ("Selection")
49 Else
50 'RestoreZoomCenterState (map)
51 ManualSerializer.RestoreMapXtremeObjectFromHttpSession ("center2")
52 ManualSerializer.RestoreMapXtremeObjectFromHttpSession ("Layers2")
53 ManualSerializer.RestoreMapXtremeObjectFromHttpSession ("Selection2")
54 End If
55 End If
56 End Sub

Note on the method saveState (), map and information center of each map layer is stored separately. So when RestoreState run no errors occur as described earlier.

In this way, we can display multiple maps with different themes in one application. Of course the setting in appstate will not be as simple as this if we also implemented in each thematic map.

If the application is built using a method InProc (HttpSessionState) mapalias use of this possibility will not run smoothly. Because the information stored in the session object in the handle automatically, we do not know what information is stored. Thus, in some experiments I did with the method InProc (HttpSessionState) sometimes runs smoothly but sometimes not as expected.

In the Object selection in MapXtreme Specific Radius

In MapXtreme applications we can do a selection of objects within a certain radius from a certain point. Usually this kind of selection is applied to determine the number of competitors, or the number of POI around a central point. For example how many motor dealers who are within 2 km of the motor dealer A.

Here is a sample program selection radius:
view source
01 private void SearchWithinRadius (double x, double y, double rad)
02 {
03 Map map = MapInfo.Engine.Session.Current.MapFactory [MapControl1.MapAlias];
04 MapInfo.Data.SearchInfo's;
05 si = MapInfo.Data.SearchInfoFactory.SearchWithinDistance (new MapInfo.Geometry.DPoint (x, y),
06 MapInfo.Engine.Session.Current.CoordSysFactory.CreateLongLat (DatumID.WGS84),
07 new MapInfo.Geometry.Distance (rad, DistanceUnit.Kilometer), MapInfo.Data.ContainsType.Centroid);
08 si.QueryDefinition.Columns = new string [] {"*"};
10 MapInfo.Data.IResultSetFeatureCollection irfc;
11 irfc = MapInfo.Engine.Session.Current.Catalog.Search ("NamaLayer", si);
12 / / zoom the map to the object selected
13 peta.SetView (irfc);
15 if (irfc.Count == 0)
16 {
17 / / No object within a radius sought. Do something here
18 return;
21 / / if the object is met
22 foreach (f in irfc MapInfo.Data.Feature)
23 {
24 / / Do something with the objects found here.
27 MapInfo.Engine.Session.Current.Selections.DefaultSelection.Clear ();
28 MapInfo.Engine.Session.Current.Selections.DefaultSelection.Add (irfc);

To illustrate the circle radius on the map:
view source
01 private void CreateCircle (double x, double y, Single radius)
02 {
03 Map map = GetMapObjek ();
04 / / because the circle will be created in the temporary layer, then if the temp layer already exists,
05 / / temp this layer must be removed first
06 if (peta.Layers ["temp"]! = Null)
07 {
08 FeatureLayer FTR = (FeatureLayer) peta.Layers ["temp"];
09 ftr.Modifiers.Clear ();
10 ftr.Table.Close ();
12 / / close temp table if it turns out, there is a temp table the rest of the user laen
13 MapInfo.Engine.Session.Current.Catalog.CloseTable ("temp");
15 MapInfo.Data.TableInfo ti = MapInfo.Data.TableInfoFactory.CreateTemp ("temp");
16 MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.CreateTable (ti);
18 DPoint center = new DPoint (x, y);
19 Ellipse circle = new Ellipse (peta.GetDisplayCoordSys (), center,
20 radius, radius, DistanceUnit.Kilometer, DistanceType.Spherical);
21 MapInfo.Styles.AreaStyle MapInfo.Styles.AreaStyle circlestyle = new ();
22 circlestyle.Interior = new MapInfo.Styles.SimpleInterior (8,
23 System.Drawing.Color.Aqua, System.Drawing.Color.Transparent, true);
25 MapInfo.Data.Feature f = new MapInfo.Data.Feature (circle, circlestyle);
26 tabel.InsertFeature (f);
28 FeatureLayer fl = new FeatureLayer (table);
29 peta.Layers.Add (fl);

Creating Web Applications Using MapXtreme GIS Templates

To create a GIS web application using MapXtreme pretty easy. MapXtreme provides a templete for Visual basic.NET and the automation of visual C # in Visual studio installed during the installation process.
Here are the steps to create a simple web application using MapXtreme GIS Web Templates.

1. From Visual Studio select the menu File - New Web Site
2.Select 6.8.0 MapXtreme web site and click ok.

Menu New Website

3.Double claim Mapform.aspx in solution explorer, display template as shown below

MapXtreme templates

4.Di Debug menu click Start to run the application debuging

MapXtreme applications

Map display that appears is a sample map. To learn about our sample Web.Config file open, and look at the tag

Creating a Web GIS with ALOV Map

AlovMap as one of the GIS engine that runs on the web is one option to be a GIS application that runs in a web browser. The question is why should AlovMap? because AlovMap is one belonging to the GIS engine is very easy to implement but very feature rich. Unfortunately (as far as the author) is very rare that try to exploit this engine to develop a web-based GIS applications. So that's why this writing, we will try to create a web-based GIS applications using this engine using HTML Plain.

Weather forecast in Google Earth

Via Google Maps, you can get the most traffic information updates, while in Google Earth, you can have a weather picture of the big cities in Indonesia. Features weather forecasts in Google Earth has been available since version 5.2 (currently version 6). Google Earth uses data from Weather.com for the weather forecast information.

Zoom in or enlarge images approach the city you want, will look look like the picture below, which appear below the cloud image with a magnitude of temperature in the city.

If you click the cloud image, you will obtain the temperature information is displayed in degrees Fahrenheit and degrees Celsius as well as the forecast for today, tomorrow until the day after, whether cloudy, sunny, cloudy or rainy. In fact you can see when the rain falls!

Moving a Layer Based on the Distance and Angle or coordinates in Global Mapper

Often I receive spatial data from clients in the local projection system. While the field data collected with reference utm projection system. To ease the process of spatial data, spatial data from the client must be in slide or be moved to sisem utm projection. Global Mapper provides an easy way to move spatial data (which was added as a layer) based on coordinates or based on distance and angle.

You can remove almost all types of spatial data formats into a new geographic location in Global Mapper, both raster and vector. You can move the satellite imagery, DEM data, shapefile, DWG, DXF, etc. using the same tool, and the process is relatively faster for large files.

Here are the stages to move the layer based on the distance and angle in Global Mapper. Note, you certainly should have a reference distance and angle of displacement or displacement coordinates this purpose.

Add spatial data into Global Mapper as a layer.>
Open the Overlay Control Center from the Tools menu -> Control Center, or press Alt + C.

Select the layer that will be on the move, right click select "Shift Selected Layer (s) a Fixed Distance".

Displacement settings window appears, specify the displacement unit, eg meters. Here you have two options to move spatial data, based on coordinates or based on distance and angle. Displacement determined from the centroid coordinate data to the resultant value or the value of the distance and angle of the destination location.

Click OK to get results. Save the layer transfer results into new files with different names.