Showing posts with label GIS. Show all posts
Showing posts with label GIS. Show all posts

Tuesday, June 6, 2017

ArcObjects By Example in C#

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

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


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

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





 Buy ArcGIS by Example


Last month I recorded a video on general channel and life update. In that video (or podcast) I mentioned that I'm working on a new book.

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
  • 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



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



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...



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


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



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


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



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...


Enjoy