ThinkGeo.com    |     Documentation    |     Premium Support

How to update attribute data in shapefiles?

 I  displayed shapefile over google map and write a script in which user can see some column  values in gridview control  when he clicks on some polygon. User want to change/update some column vales which he is seeing in gridview. Now i want , is it possible to change/update column values of shapefile ??


i am using evaluation version of map object (Web Edition).


Need immediate solution... some link or code.



 aa,


Welcome to MapSuite world.


  It’s possible to update the column values, here is the sample, please check it.


Any more questions please feel free to let me know.


Thanks,


James



8664.zip (3.38 KB)

Hi,


very thanks for the reply...


As i am new to Map object.. can u please tell me what address i have to put in place of [GoogleUri] in the following line


google.JavaScriptLibraryUri = new Uri(ConfigurationManager.AppSettings["GoogleUri"]);


Thanks..



 


Aa,
 
You just need to copy the sample code to our HowDoI samples instead of any sample, it should be working.
If you want to create your own project, you can put the uri in your web.config which is in your web application’s root. Just like the following code.
 
<appSettings>
    <addkey="GoogleUri"value="maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAoxK_HcqphMsnUQHEwLwHlRSavkNJi0NVTgm4UDidoiIU5dUJpRQW88FufPCp0aTPraxZgZFAIUHn3Q"/>
</appSettings>
 
Thanks,

James



Thanks again.


The code runs successfully, but when i click on map, nothing happened and no error message, I think This is because of error message which i can see when i click on design view of .aspx file. The error is on Map1 control like this:


Error Rendering Control - Map1 


An Unhandeled Exception has occured. Values does not fall within the expected range. (May be this is because of evalution version of Map object).


Second thing, i want to buy Full and latest version of Map Object (Web edition) for .Net. I am using VS 2010. From where I buy.. Provide some link.


Thanks



aa, 
  
 The sample is working properly in my local machine, which version of Webedtion you used?  
  
 If you want to buy full edition, please contact sales@thinkgeo.com 
  
 Thanks, 
 James

Hi James, 
  
 I am using Map object (Web edition) Evaluation version 4.5.0 
  
 "Error Rendering Control - Map1 An unhandled exception has occurred. 
 Value does not fall within the expected range."  
  
 The above message is displayed on top of Map control when i drag this control from ToolBox and drop on Form.

aa,


I create a separated sample project, you only need to add reference to MapSuiteCore.dll and WebEdition.dll, and everything goes well, just the looking is urgily rather than HowDoI sample, because I remove many things to reduce to file size.


Thanks,


James



WebApplication2.zip (216 KB)

Hi James,


Great, Every thing works fine now, I just change the shapefile to cities_a.shp instead of STATES.shp, and also changed feature column names as in cities_a.shp file, but it does not work. I put break point under Map1_Click event, and i see that nothing returned in SelectedFeatures variable, it shows count = 0. and that why, nothing happened.


Collection<Feature> selectedFeatures = worldLayer.QueryTools.GetFeaturesContaining(e.Position, new string[3] { "FID", "osm_id", "name" });


I also tried many other files, But one thing I noted that shapefile with Polygon features runns successfully, i tried cntryo2.shp and UtahWater.shp. both are Polygon types. But features like Point and Polyline does not work with code you send.


Please help.. 



aa,


It's just a sample to show you how to update attribute data in shapefiles, why you care that how to find the feature?


There are many way to find feature, my sample just use a API to search which feature containing current mouse position, so it just works for polygon. If you use cities_a.shp which is point, you can try to use code below:


Collection<Feature> selectedFeatures = worldLayer.QueryTools.GetFeaturesNearestTo(e.Position, Map1.MapUnit, 1, new string[3] { "FID", "osm_id", "name" });

Thanks,


James



aa,


If the description what the James said above is not so clear for you, please check the attachment, I updated the sample application used the point type as the ShapeFileFeatureSource, also the point data is in the attachment you just need to run the application directly.


If you still have any questions please let me know,


Thanks,


Scott,



001_WebApplication2.zip (334 KB)

Hi,


Thanks for sending me the attachment. Below is the Two lines of code for point type, but I would also like to see similar two lines of code for polyline type.


shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimplePointStyle(PointSymbolType.Square, GeoColor.StandardColors.BlueViolet, 12);


 Collection<Feature> selectedFeatures = worldLayer.QueryTools.GetFeaturesNearestTo(e.Position, Map1.MapUnit, 1, new string[3] {"FID", "OPERATIONI", "OPERATIONN"});


Best regards/


 



aa,


Here is the code what you want below:


 



shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.SimpleColors.Red, 2.0f, true);
            Collection<Feature> selectedFeatures = worldLayer.QueryTools.GetFeaturesNearestTo(e.Position, Map1.MapUnit, 1, );
You can realize for different data type when you render it, you just need to change the style. The Point data uses PointStyle to render, the line/polyline data use LineStyle to render and the Polygon/MultiPolugon data use AreaStyle to render. If you still have any other questions please let us know,


Thanks,


Scott,