While working on one of our recent projects we came with an idea (or I should rather say - we eventually managed to spare some time on something not strictly project related ;) that giving some more context to a map should improve the perception of the map data itself:


ExtJs 4 - avoid adding duplicate records

This is quick tip on how to avoid adding duplicate records to data store in ExtJs 4.

In my example I have Ext.grid.Panel which dynamically creates store for itself in constructor method from provided list of fields:


Export all components of given type from manifold map file

You may sometime need to export all the components of given type so they can be used in another GIS environment. Here goes a script that does exactly this. The example exports all the drawings and tables to either shp or xls:

using Manifold.Interop.Scripts;
using M = Manifold.Interop;

class Script {
	static void Main() {
		//Some setup stuff first
        string exportFld = "H:\\ExportedComponents\\";

        M.Application mApp = Context.Application;
        M.Document mDoc = (M.Document)mApp.ActiveDocument;
        M.ComponentSet mCompSet = mDoc.ComponentSet;

        M.ExportShp shpExporter = (M.ExportShp)mApp.NewExport("SHP");
        shpExporter.ConvertPolicy = M.ConvertPolicy.ConvertAll;

        M.ExportXls xlsExporter = (M.ExportXls)mApp.NewExport("XLS");
        xlsExporter.ConvertPolicy = M.ConvertPolicy.ConvertAll;

       //iterate through all components
        for (int i = 0; i < mCompSet.Count; i++ )
            mApp.StatusText = "Reading component " + i.ToString() + " of " + mCompSet.Count;

            switch (mCompSet[i].Type)
                case M.ComponentType.ComponentDrawing:

                    shpExporter.Export(mCompSet[i], exportFld + mCompSet[i].Name + shpExporter.DefaultExtension, M.ConvertPrompt.PromptNone);


                case M.ComponentType.ComponentTable:

                    xlsExporter.Export(mCompSet[i], exportFld + mCompSet[i].Name + xlsExporter.DefaultExtension, M.ConvertPrompt.PromptNone);

        mApp.StatusText = "";
        mApp.MessageBox("Done!", "Info");

Upload and save image in a database - ExtJs and ASP.NET

It's been a while since the last post appeared here so this one will be rather longish ;-)

Recently in one of our projects we had a requirement to allow users to upload their images to the database so they can later be viewed by other users of the application.

For the clientside we used the ExtJs framework while the serverside was ASP.NET and c#.

Basically the process can be divided into three parts: image upload on the clientside, image processing on the server side and also image retrieval from the database so it can be displayed again in a browser.