Want to learn ArcObjects? You came to the right place.
Ride with me in this YouTube series as we fix a broken telecom company called "Phonetech" (terrible name I know). Phonetech suffer from losing customers and weak phone reception. Despite their effort of adding new cell phone towers their service is not getting any better.
They came to us in IGeometry asking for help, they provide us with their data and problem and asked us to use GIS to solve this problem.
We are going to help them build a solution on top of ArcGIS using ArcObjects to efficiently place Towers to achieve maximum reception, plus we will do cool other things too!
We will start from scratch by describing the problem, slowly build the UML diagrams, ERD, build the geodatabase, the schema and write code to build the solutions on top of ArcGIS Desktop.
Enjoy
https://www.youtube.com/watch?v=nn4mtxdi19A&index=1&list=PLQnljOFTspQVMRyBp7UOt8pU7wygBmEja&t=25s
Github repo for the source code
https://github.com/hnasr/phonatech.git
Cheers!
Hussein
Showing posts with label GIS. Show all posts
Showing posts with label GIS. Show all posts
Tuesday, June 6, 2017
Sunday, April 9, 2017
Creating Polyline features using ArcObjects on Enterprise Geodatabase
In this episode, we show two different methods to construct line then we persist them as features in a geodatabase. First method using RubberBand (2:29), the second using a collection of points (7:00)
GitHub repo
https://github.com/hnasr/IGeometry
Enjoy!
Subscribe to get the free weekly stuff!
Friday, April 7, 2017
Inserting Bulk Features using ArcObjects into PostgreSQL Enterprise Geodatabase
In this episode we learn how to insert bulk of features into the geodatabase using buffering and insert cursor. The original method of using .store is good if you are planning to create few features and verify them, however it becomes slow when working with large number of features. So that is why we use this approach to insert bulk features.
GitHub repo
https://github.com/hnasr/IGeometry
Tuesday, April 4, 2017
Set up a PostgreSQL Instance on Linux to work wth ArcGIS
Few weeks back we did an episode on how to configure PostgreSQL database on Windows machine to work with ArcGIS. It was popular I decided to do a similar one but on Linux.
We discuss how to setup postgresql instance from scratch on Ubuntu 16.04.2 LTS, configure the instance to work with ArcGIS and then create an enterprise geodatabase from ArcGIS Desktop and finally we connect to the geodatabase.
Hope you guys enjoy it, link below.
Enjoy
-Hussein
Thursday, March 30, 2017
ArcObjects - Creating Point Features
We show how two different methods to construct point geometries then we persist them as feature in a geodatabase.
Friday, April 29, 2016
ArcObjects SDK available for download !
After years finally users can freely download and work with the ArcObjects SDK for both .NET and Java! Previously this was only available to partners and customers who request the bundle DVD.
Here are the steps.
1. Go to Arcgis.com
2. Register a trial 60 days account
3. Sign in and on the right you can have the link.
Now that you have ArcObjects SDK, go build cool solutions.
Don't forget we have two Youtube series on IGeometry discussing how to get started with ArcObjects. One with VB.NET and another with C# , more than 30+ hours of content.
Enjoy
Extending ArcObjects (VB,NET)
https://www.youtube.com/watch?v=XrZs1rwmOwg&list=PLQnljOFTspQXqYsWJG8o-eJpGlvzww9lE
ArcObjects by Example (C#)
https://www.youtube.com/watch?v=nn4mtxdi19A&list=PLQnljOFTspQVMRyBp7UOt8pU7wygBmEja&src_vid=XrZs1rwmOwg&feature=iv&annotation_id=annotation_401451585
Here are the steps.
1. Go to Arcgis.com
2. Register a trial 60 days account
3. Sign in and on the right you can have the link.
Now that you have ArcObjects SDK, go build cool solutions.
Don't forget we have two Youtube series on IGeometry discussing how to get started with ArcObjects. One with VB.NET and another with C# , more than 30+ hours of content.
Enjoy
Extending ArcObjects (VB,NET)
https://www.youtube.com/watch?v=XrZs1rwmOwg&list=PLQnljOFTspQXqYsWJG8o-eJpGlvzww9lE
ArcObjects by Example (C#)
https://www.youtube.com/watch?v=nn4mtxdi19A&list=PLQnljOFTspQVMRyBp7UOt8pU7wygBmEja&src_vid=XrZs1rwmOwg&feature=iv&annotation_id=annotation_401451585
Tuesday, April 26, 2016
See the Great American Eclipse of August 21, 2017
My colleague Mike Zeiler is fascinated with Maps. What is astonishing is how he is able to author to serve his hobby. Solar Eclipses.
He travels around the world to see every eclipse, he is among the few who actually does that. Next year the eclipse will be in United States - Oregon, so he doesn't have to travel too far this time.
This is his website, go check out the cool maps he built and pay attention to the count down timer to the next eclipse.
http://www.greatamericaneclipse.com/
Enjoy
He travels around the world to see every eclipse, he is among the few who actually does that. Next year the eclipse will be in United States - Oregon, so he doesn't have to travel too far this time.
This is his website, go check out the cool maps he built and pay attention to the count down timer to the next eclipse.
http://www.greatamericaneclipse.com/
Enjoy
Sunday, March 27, 2016
Docker and ArcGIS
As a Geogeek, I always want to augment cool new technologies with my line of work, ArcGIS. Docker is proving to be the future in terms of simplifying deploying and scaling.
This Youtube series is my attempt to start to unravel the marriage between these two technologies.
This is something new and different in this channel. IGeometry has always been about programming with ArcGIS, we talk about how to build cool software with ArcGIS technology. However, we never talked about how does existing bleeding edge technologies blend with the ArcGIS platform. So here it is.
I'm very interested in Docker and I have actually used it in a small project with ArcGIS. I want to start this series to try to understand where Docker fits in the ArcGIS stack. We might eventually end up doing some implementations of Docker and ArcGIS. If and when possible.
You might say that ArcGIS runs on Windows and Docker runs on Linux, so how can you integrate the two? That is not entirely true, we have a lot of pieces in the ArcGIS technology that actually run on linux and thus supports Docker containers. We will explore that in the coming episodes.
Let us see how this goes.
Enjoy
Tuesday, November 3, 2015
ArcGIS Add-ins C# Series
We are back!
Brand new episode, talking about ArcGIS for Desktop, customizations, describing the setup, Extending ArcObjects vs Add-ins and discussing what we are going to do in the coming episodes!
Enjoy Guys
Stay Awesome!
Sunday, September 27, 2015
ArcObjects by Example Book by Hussein Nasser
The book titled "ArcGIS By Example" has been successfully published. I would have named it ArcObjects by Example really, but the publisher suggested this name so.
The book is extremely useful for those who want to get started with programming with ArcGIS and do really cool stuff with ArcGIS that is not provided out of the box. It discusses how to develop using Add-ins and extending ArcObjects techniques. The beauty of this book is that it uses an example approach, which is a real life scenario project where you build a software to satisfy certain requirements. Not only that, you have 3 examples that you will never find anywhere on the net because simply I made them up. Unless the future version of me beat me to it and published it before I did?
You only need ArcGIS and ArcObjects SDK to work on the book and of course Visual studio express which is free. The book is written for ArcGIS 10.3.1 but you can work with ArcGIS 10.1 up 10.3.1 safely. The book has the list of software requirements too.
Since I'm a gamer, the book references some video games characters and location. Shoot me an email if you did figure them out with the page number :)
Thank you guys for buying my book! Enjoy it and check out my 200+ free video tutorials on IGeometry YouTube channel.
Thursday, August 13, 2015
Blog, Channel and Life Update
Really long time since I wrote anything here...
It has been a wonderful journey since my wife suggested that I take a publisher offer to write my first book back in 2013. I'm so glad that I did.
Today, the fruits of that decision, four books, a Youtube channel, and a big move in my proffesional carrier..
Listen the Channel Update for more details
-Hussein
Tuesday, December 16, 2014
ArcObjects Recycled Cursors
If you are new to ArcObjects, you must have seen this Boolean parameter when you want to create a search cursor. This might be confusing for some new developers. I didn't know about it in the beginning so I used to insert a false there every time.
Actually this very Boolean parameter can really ruin your entire application and produce unexpected results if used in the wrong context.
What is Recycling?
Recycling is reusing the same memory location for creating features or rows.
When to use Recycling?
Recycling cursor is much more efficient than non-recycling one. It is great for populating lists and printing values in the screen.
Here are some cases you want to use Recycling in
When not to use Recycling?
When capturing the feature or its geometry (or any other non-primitive reference) , DO NOT use Recycling cursor. If you did you will simply get the same feature (probably the last one) in all your collection because it is using the same memory location.
Here are some cases you must not use Recycling in
I even made you a video guys!
Hope that helped!
Actually this very Boolean parameter can really ruin your entire application and produce unexpected results if used in the wrong context.
What is Recycling?
Recycling is reusing the same memory location for creating features or rows.
When to use Recycling?
Recycling cursor is much more efficient than non-recycling one. It is great for populating lists and printing values in the screen.
Here are some cases you want to use Recycling in
- Populating Features' attributes in a list
- Saving certain primitive features attributes (like objectid) in a collection
When not to use Recycling?
When capturing the feature or its geometry (or any other non-primitive reference) , DO NOT use Recycling cursor. If you did you will simply get the same feature (probably the last one) in all your collection because it is using the same memory location.
Here are some cases you must not use Recycling in
- Union the geometry of all features in a given cursor
- Saving the feature geometry in the Grid Tag or collections
- Comparing features
I even made you a video guys!
Hope that helped!
Extending ArcObjects with .NEt (IGeometry) - 09 - Searching the Geodatabase
In this episode we talk about how to search restaurants by name, filter them on the map as we type in the name of the restaurant.
Interfaces introduced in this episode: None
====
Previous episode with code
http://www.youtube.com/watch?v=h7TYtS...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/b1wdh57g342...
Enjoy
Interfaces introduced in this episode: None
====
Previous episode with code
http://www.youtube.com/watch?v=h7TYtS...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/b1wdh57g342...
Enjoy
Sunday, December 14, 2014
Extending ArcObjects with .NET (IGeometry) - 08 - Flashing Geometry
This episode we will learn how to flash restaurants geometry on the map. We learn how to draw the point geometry on the screen and customize the pen to change the size and the color. The NOT XOR pen will allow you to draw over the same color which will make the color disappear simulating a flashing process.
Interfaces introduced in this episode: IGeometry, IRGBColor, ISymbol, IMarkerSymbol
Enjoy
Interfaces introduced in this episode: IGeometry, IRGBColor, ISymbol, IMarkerSymbol
Enjoy
Friday, December 12, 2014
Extending ArcObjects with .NET (IGeometry) - 07 - Selecting Features
In this short episode we learn how to interact with the map from our form. We will learn how to select a feature, clear existing selection and refresh the map so we can show the selection
Interfaces introduced in this episode: None
====
Previous episode with code
http://www.youtube.com/watch?v=XT1LqH...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/d8rhjgh1we4...
Interfaces introduced in this episode: None
====
Previous episode with code
http://www.youtube.com/watch?v=XT1LqH...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/d8rhjgh1we4...
Wednesday, December 10, 2014
Extending ArcObjects with .NEt (IGeometry) - 06 - Object Oriented and GIS
First introduction of Object Oriented concepts with ArcObjects. We create the category and restaurant class to wrap the ArcObjects and populate them dynamically in drop down lists. We remove the hard code coded categories and replace them with a dynamic subtype auto fill.
Interfaces introduced in this episode: ISubtypes and IEnumSubtype
====
Previous episode with code
http://www.youtube.com/watch?v=saixbj...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/uxva0bj8fph...
Enjoy
Interfaces introduced in this episode: ISubtypes and IEnumSubtype
====
Previous episode with code
http://www.youtube.com/watch?v=saixbj...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/uxva0bj8fph...
Enjoy
Monday, December 8, 2014
Extending ArcObjects with .NET (IGeometry) - 05 - Filtering Queries
his short episode introduces the concept of filtering queries. We talk and discuss the IQueryFilter and IFields interface. We do that by adding a new functionality to our Bestaurants application to filter restaurants by their category
Interfaces introduced in this episode: IFields, IQueryFilter
====
Previous episode with code
http://www.youtube.com/watch?v=avbKHJ...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/57wvn1hgbe9...
Enjoy
Interfaces introduced in this episode: IFields, IQueryFilter
====
Previous episode with code
http://www.youtube.com/watch?v=avbKHJ...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/57wvn1hgbe9...
Enjoy
Saturday, December 6, 2014
Extending ArcObjects with .NET (IGeometry) - 04 - Querying Features
We fix the form-hiding-behind-arcmap problem by forcing the form to be the child of ArcMap. Also this is our first encounter with Feature Classes, Feature Cursor and yes Features. We will learn how to get the feature class, use it to query and get a feature cursor which will give us individual features to loop through. New Interfaces introduced in this episode, IFeatureClass, IFeatureCursor and IFeature
Interfaces introduced in this episode: IFeatureClass, IFeatureCursor, IFeature
====
Previous episode with code
http://www.youtube.com/watch?v=QCpEKW...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/yiggh6ky3aw...
Enjoy
Interfaces introduced in this episode: IFeatureClass, IFeatureCursor, IFeature
====
Previous episode with code
http://www.youtube.com/watch?v=QCpEKW...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/yiggh6ky3aw...
Enjoy
Thursday, December 4, 2014
Extending ArcObjects with .NET (IGeometry) - 03 - Filtering Layers
We explain more interfaces today, and how layers can implement multiple interfaces for different functionalities. We will also filter the restaurants by category using the IFeatureLayerDefinition interface.
Interfaces introduced in this episode: IFeatureLayerDefinition
====
Previous episode with code
http://www.youtube.com/watch?v=sMxkNI...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/1l92ha5lo0v...
Enjoy
Interfaces introduced in this episode: IFeatureLayerDefinition
====
Previous episode with code
http://www.youtube.com/watch?v=sMxkNI...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/1l92ha5lo0v...
Enjoy
Monday, December 1, 2014
Extending ArcObjects with .NET (IGeometry) - 02 - Working with Layers
This lengthy episode is our first encounter with data. We create an ArcMap document and add the Bestaurants data to it, change symbology and prepare it for programming.
We explain the ImxDocument, IMap and ILayer interfaces in this video. We create a new button and add it to our toolbar, the button opens a new form that have a drop down list. We writes our first code that reads all the current layers in the map and populates them in the list.
Then we work with the layers from within the form. We will learn how to hide and show the layer from the active view in the map and also learn that to apply these changes we have to call methods on both the document and map object in order to refresh and see the changes we do!
Interfaces introduced in this episode: IDocument, IMap, ILayer
====
Previous episode with code
http://www.youtube.com/watch?v=XrZs1r...
Bestaurants Geodatabase
https://www.dropbox.com/s/ywg4l7zj6cf...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/7eh3dfbnl8y...
We explain the ImxDocument, IMap and ILayer interfaces in this video. We create a new button and add it to our toolbar, the button opens a new form that have a drop down list. We writes our first code that reads all the current layers in the map and populates them in the list.
Then we work with the layers from within the form. We will learn how to hide and show the layer from the active view in the map and also learn that to apply these changes we have to call methods on both the document and map object in order to refresh and see the changes we do!
Interfaces introduced in this episode: IDocument, IMap, ILayer
====
Previous episode with code
http://www.youtube.com/watch?v=XrZs1r...
Bestaurants Geodatabase
https://www.dropbox.com/s/ywg4l7zj6cf...
The Source Code as of the end of the Episode
https://www.dropbox.com/s/7eh3dfbnl8y...
Enjoy
Subscribe to:
Posts (Atom)




