Book Review : Administering ArcGIS for Server

June 10th, 2014 Comments off

This is the 3rd book review in my blog. Of course, it is related to GIS stuff :)

Name of the book is “Administering ArcGIS for Server” which is a complete guide to ArcGIS for Server (even I can’t adopt the new naming scheme of ESRI).

The author of the book “Hussein Nasser” is also a winner of ESRI DevSummit Code Challenge in 2007 like me :) His career and success proves that he has deep knowledge of ArcGIS for Server. In general the book is about ArcGIS for Server 10.x series which the most up to date release and there are 8 chapters with 2 appendixes. Let’s explore the chapters in details :

1- Chapter 1 : Best practices for Installing ArcGIS for Server :
This is the beginning of the book and it is quite normal to start with installing the program. This part is quite adequate on ArcGIS for Server, but I wish there is a extra chapter or part for installing ArcSDE with multiple database types. The most problematic part about installing ArcGIS for Server is the integration of ArcSDE in my experience even though I can’t work much on ESRI stuff nowadays :)

2- Chapter 2 : Authoring Web Services :
As it is name implies, this part is about web services on ArcGIS for Server. This part covers both ESRI related and OGC standard services.

3- Chapter 3 : Consuming GIS Services :
You have installed the ArcGIS for Server and publish some services, so it is time to consume them. This part covers the consuming of services in various software or APIs, which are ArcMap, QGIS, Google Earth, ESRI ArcGIS JavaScript API. Also there is a section about editing.

4- Chapter 4 : Planning and Designing GIS Services :
Now you know the basics of ArcGIS for Server, it is time for the real life case studies to plan and design your services.   The case study is about a locator services for restaurants with ArcGIS for Server.

5- Chapter 5 : Optimizing GIS Services :
Chapters are getting more advanced as the book evolves :) This is one of the most important part for advanced user. Even you have knowledge about previous chapters, you will find some info or trick in this chapter about optimizing your services.

6- Chapter 6 : Clustering and Load Balancing :
This is also like the Chapter 5. If you want a sustainable web services, then you should check this part of the book. It gives great information about the continuity of your GIS services.

7- Chapter 7 : Securing ArcGIS for Server :
You setup everything but your services are default open the public. In order to protect your data, you should secure it with the mechanisms integrated to ArcGIS for Server. This chapter is dedicated to security.

8- Chapter 8 : Server Logs :
This is also quite important part to find the bottlenecks of problems with the ArcGIS for Server, because logs keep the journal of the ArcGIS for Server and tell you the problem if there is any. This part is a serious way to learn on tracing the bugs or problems about your services.

As it is written about, the book covers all the parts of ArcGIS for Server and it is a great book for people who work with ArcGIS for Server. I’m quite happy with the book except the need for ArcSDE installation and management with ArcGIS for Server. May be this is out of the book scope, but it is the most important complementary thing for the book.

As a result, I suggest this book to people who works with ArcGIS for Server without any doubt. You can also find the PROs and CONs of the book below.

PROs:
+ Update to date release
+ There are some scenarios to use in your projects.
+ Advanced usages of ArcGIS for Server is also included.
+ “Selecting the Right Hardware” and “Server Architecture” parts are good both for newbies and professionals

CONs:
- PostgreSQL/PostGIS support is much better than MSSQL :)
- ArcSDE installation could be a better.

You can get the book from this address.

Categories: GeoWeb Tags: ,

Web Mapping APIs’ Vector Performance Comparison

June 1st, 2014 Comments off

It’s again a lot time since I wrote a blog post. I’m in a very busy schedule these days so I can’t find any time to write or share except Twitter. Last week I joined a conversion with Zev Ross and Mano Marks on Twitter about web mapping APIs’ vector performance. Then I realized that I wrote a paper for a national GIS conference in September 2013 and I have not shared with any of the results. After the conversation, I started writing this blog post. Before start, I want to emphasize that results of the paper should not be a real guide nor a real usage test.

This paper only shows the vector loading test results of 5 mapping APIs: Google Maps JS API v3, Bing Maps JS API v7, ESRI ArcGIS JS API v3.6, Leaflet v0.6.4 and Openlayers v2.13.1. All tests are done on Windows 8 OS due to lack of Internet Explorer (IE)  in other operating system. IE 10 is used as a main IE test browser and IE 7, 8 and 9 are tested in compatibility modes in IE 10. Chrome (v29), Firefox (v23) and Safari (v5.1) also used as an other test browsers.

For testing purposes, a province of Turkey (Muğla) is used in GeoJSON format in following vertice numbers : 40K, 10K, 5K, 2K, 1K and 500. Some APIs’ have native GeoJSON support, but to be fair in reading the GeoJSON, a simple JavaScript function is written and used in all tests in different APIs. After loading the GeoJSON file, all vertices in polygon are iterated through and an array of points is created. Then this array is added to map. This process is also tried 30 times to get average load times. Then each test on each browser is also run 5 times to make sure the values are normalized. At the end we have  210 tests for each Mapping API (5 Reloads X 7 Different Browsers X 6 GeoJSON files) and province polygon is loaded for 6300 times to get these results. The results of all the tests are shared as a Google SpreadSheet from the following address :

https://docs.google.com/spreadsheets/d/1w5czPofOXVfMGiCx0wjhNLB_dJnYyw3U5yTCrn13mOw/edit?usp=sharing

As a result of the test, Mapping APIs are ranked as follows :

1. Google Maps JavaScript API
2.Leaflet
3.ArcGIS API for JavaScript
4.Bing Maps JavaScript API
5.OpenLayers

As it is stated before, this is a outdated test but it gives the idea. Openlayers is placed at the end but it is the most outdated API which also works in IE 6. At the time when we are testing APIs, Openlayers v3 is still in beta (or alpha, I can’t remember) phase and we skipped it, but we are sure that V3 will get much much better results in the following tests :)

Google Maps JavaScript API V3 is the best for vector presentation, but due to its proprietary license the second winner Leaflet can be a good candidate as a mapping API. Even though I’m a co-author of a Google Maps JavaScript API Cookbook, I used all of the APIs in different cases and each one has different advantages and disadvantages. These tests only shows the vector loading performance of mapping APIs and this is only one side of web mapping.

As a result, I’m not a professional test guru and there may be problems with my testing style, but these tests are only shared with you to give a rough idea to use mapping APIs when you are dealing with vector datasets. There are lots of things to consider when choosing a mapping API.

Hope to do these tests again with the new versions of mapping APIs…

My First Book is available: Google Maps JavaScript API CookBook

January 17th, 2014 Comments off

I’ve been quite busy for a long time due to projects and I couldn’t find any time to write to blog about what’s going on my life. But this time, instead of writing to blog, I wrote a book on Google Maps JavaScript API v3. Last year, Packt Publishing contact me to write a book on Google Maps JavaScript API. After a few discussion, We (I and with my collegue, Balkan Uraz) decided to write this book. In this book, we didn’t add “V3″ to end of API, beacuse “V2″ is already deprecated and there is only one valid JavaScript API for now. Anyway, you can buy the book from the following addresses :

Packt Pub |  Amazon |  Barnes & Noble  |  Safari Books  |  O’Reilly

This book is written in a CookBook concept that includes more than 50 recipes. Recipes includes the full code for the subject given with related explanations. Even it is a cookbook, it also includes details about the usage of Google Maps JavaScript API in different conditions. Book includes 8 chapters which are given as follows:

Chapter 1: Google Maps JavaScript API Basics
Chapter 2: Adding Raster Layers
Chapter 3: Adding Vector Layers
Chapter 4: Working with Controls
Chapter 5: Understanding Google Maps JavaScript API Events
Chapter 6: Google Maps JavaScript Libraries
Chapter 7: Working with Services
Chapter 8: Mastering the Google Maps JavaScript API through Advanced Recipes

As it is seen from the chapter list, Google Maps JavaScript API Cookbook is for developers who wish to learn how to do anything from adding a simple embedded map to a website to developing complex GIS applications with the Google Maps JavaScript API. It is targeted at JavaScript developers who know how to get by but who are also seeking the immediacy of recipe-based advice.

If we go over the chapters;

  • Chapter 1 is about the basics of Google Maps JavaScript API. You can learn how to create a simple map both on web and mobile platforms, how to change map properties and how to change the base maps.
  • Chapter 2 is about adding raster layers to Google Maps JavaScript API. You can add styled maps, tile sources as base maps or overlays, heat maps and other Google’s overlays.
  • Chapter 3 is about adding vector layers to Google Maps JavaScript API. You can add markers, lines, polygons, circles, rectangles and popups to maps. Also there is a recipe about animated lines that will spice your maps. There is also recipes about some popular vector formats in GIS like KML, GeoRSS, GeoJSON and WKT.
  • Chapter 4 is about working with controls. With the help of this chapter, you can add different controls to your map in order to interact with the user. There are also a recipe to add your own logo the map.
  • Chapter 5 is about events in API. Events concept is very important in JavaScript due to its async structure. With the help of events, you can create different types of interactions to power up your geo web applications. For example, you can create two maps with different base maps side by side to compare the difference. Also you can learn how to create your own type of events.
  • Chapter 6 is about the JavaScript libraries that enhances the Google Maps JavaScript API. These libraries are both from Google and community to add extra capabilities to API like drawing shapes, area/length calculations, custom popups/info boxes or drag zoom controls.
  • Chapter 7 is about working with Google services. With the help of this chapter, you can do geocoding, reverse geocoding, getting elevation, getting directions or showing Street Views on the map.
  • Chapter 8 is the most advanced chapter of the book. It is about integration of GIS Servers/Services with Google Maps JavaScript API. In this chapter, you can find recipes on adding WMS layers (both as tiled and untiled), Fusion Tables layers, CartoDB layers, ArcGIS Server Layers. You can also find how to add WMS layers with your own GeoServer instance.

As it is seen from the chapter details, this book can be useful for all developers interested in geo web subjects. Also this can be a useful resource for mobile developers using hybrid development techniques (such as PhoneGap) to add geo features to their mobile apps.

Before writing this book, I thought writing a book is an easy process, but I’ve learn that writing a book is not an easy task especially for developers :) Because most developers like me loves coding and hates the documentation.

My final words are like other authors’ words :) Especially, I want to thank my wife during the write process. I can’t make this without her patience and love. I also want to thank our editors, people helped us at Packt Publishing and reviewers that make our book better.

Hope you can like the book and please let us know if there are any mistakes, problems or suggestions about the book.

Categories: GeoWeb Tags: ,

2nd Book Review – Interactive Map designs with Leaflet JS Library How-to

July 23rd, 2013 Comments off

Again, it has been a long time since my last post. I’ve been quite busy with different projects so I can’t find any time to write on the blog. If you are wondering about my projects then you should wait for it :) But I can give you a spoiler about one project : I’m also writing a book about Geo Stuff ;)

Anyway, last week Packt Publishing contact me about a book review and I’ll accept it due to its length. It is shorter than a book and it can be called as a starting guide. These series are Packt Publishing’s new series which are  publishing as an e-book or print. As it is stated in the book, the series are “Short, Fast and Focused”.

The book is written by Jonathan Derrough, who is also minor contributor to Leaflet library.

The book is composed of 52 pages and 7 small how-to chapters. You can access contents below :

  • Getting started with Leaflet (Simple)
  • Using Leaflet on mobile (Simple)
  • Creating markers with popups and handling events (Intermediate)
  • Creating layers and layer groups (Intermediate)
  • Using Leaflet map controls (Intermediate)
  • Using GeoJSON to create stylish map objects (Intermediate)
  • Designing interactive choropleth maps (Advanced)

As it is seen from the contents, book is for everyone in geo development. There are different topics according to their levels. Each chapter is complete within itself. You can easily learn what’s going on and what’s behind the code when you are reading.

If you want to dive in geo development with Leaflet and don’t want to read hundred pages books, this book is for you. It just makes a good start with its background.

As I wrote on previous book review, please buy the book to support writer instead of downloading the illegal copies. This will courage more people to write this kind of books to support Open Source projects like Leaflet.

PS : You can get book from these sellers :

Amazon.com
DZone
Goodreads

Categories: GeoWeb Tags: , ,

1st Book Review : OpenLayers Cookbook

October 5th, 2012 Comments off

I know I haven’t been writing for a long time even I want to and hope that this post will start a new habit for me to write regular. This is my first book review so please be kind about judging my post :)

Anyway, lets start the review :

As far as I know, “OpenLayers Cookbook” is the second book directly related to OpenLayers framework written by Antonia Santiago Perez. “Packt Publishing” released the book like the first OpenLayers Book. As the name implies that this book is more than a teaching book. There are 60 recipes about the OpenLayers in 8 main chapters. These chapters are as follows :

  1. Web Mapping Basics
  2. Adding Raster Layers
  3. Working with Vector Layers
  4. Working with Events
  5. Adding Controls
  6. Theming
  7. Styling Features
  8. Beyond the Basics

Even there are some basic concepts, the advanced concepts are dominant in the book. If you are not familiar with OpenLayers and core GIS concepts like layers (WMS, KML, GML), I suggest you should first read the first book named, “OpenLayers 2.10 Beginner’s Guide”, otherwise you can dive into the book. The recipes in the book are directly related to business cases which you have to solve in your work days. Some recipes can be a life saver if your customer/boss wants different action in your web mapping apps.

The following recipes are the most liked ones by myself :

  • Using the cluster strategy
  • Creating a side-by-side map comparator
  • Implementing a work in progress indicator for map layers
  • Listening for non-OpenLayers events
  • Creating a new OpenLayers theme
  • Defining custom rules to style features
  • Working with projections
  • Creating a custom control
  • Making an animation with image layers

I’m working with different mapping frameworks/APIs like Google Maps JS API, Bing Maps API, Leaflet, MapBox JS and OpenLayers in different conditions The most powerful and detailed framework is OpenLayers and this book is a good resource if you want to learn this powerful framework in details.

Please buy the book to support writer instead of downloading the illegal copies. This will courage more people to write this kind of books to support Open Source projects like OpenLayers.

PS : There is also another review for the book from GeoWebGuru.

Categories: OpenLayers Tags:

After a long period and Geo Products I Used in 2011

January 4th, 2012 Comments off

It has been a very long time (almost a year) since I wrote a blog post.

It was a great year both in private and work life. First off all, I got married and this is the greatest thing in my life. It was a busy period to do a wedding ceremony but it was worth it. I would like to thank God from here to join me and my wife together :)

Anyway, lets come to main topic which interests this blog : my work life. It was also a good year for my development side.

My development side started to move back to Open Source projects again after an “ESRI” period. Don’t get me understand wrong, ESRI has a great products both on desktop and server side and we are still using ESRI products in our environment, but the license costs are getting more and more even for large organisations like us.

There is also a Google Maps side for this story. I’ve been using Google Maps since it has an API and I’m also a “Qualified Developer for Google Maps JS API”, but the announcement of Google that Google Maps is no more free makes us to think about like other developers or companies. Google Maps has still good map coverage than Bing Maps or OSM, but we had to start looking for the alternatives. We are still using Google Maps JS APIs in our products, but we are thinking more than ever to shift from the API.

Last part of my development life is the Mobile. Mobile is getting more important and we don’t want to get behind from the technology. Most of our managers got an iPad and we started to build apps for mobile, especially for iOS. Some of them may be remember that I have one native and one web app for mobile, which are iExtMap and ExtMap Touch, respectively. I know some people expect to update these products, but I can’t find any time to update them. Hope I can find time this year to update them :)

I wrote a summary about 2011 and I just want to finish my post with the popular geo products I’ve used in 2011. I’ll also write about them if I find time.

Wish you all a good year ;)

Geo Products I used in 2011
Desktop :
- ESRI ArcMap (I can’t remember the new name) with Arc2Earth pluging :
Still great at working and symbolizing the data. Arc2Earth is a also a great product to export tiles and GeoJson to our web products.
- QGIS :
Works great with PostGIS to import/export data

Server Side :
- Oracle Spatial (as DB) :
Nothing to say about it, it’s still the best option in Enterprise level in Turkey due to support
- PostGIS (as DB) :
It is my new favorite to work with easily, but the support in Turkey is not good. So we have confusion to switch over in enterprise level.
- ArcGIS Server :
It is the complete product that you can do everything, but licensing is very expensive in Turkey if you want to make a load-balances structure with 6-10 machines.
- Tilemill (can be in desktop side too) :
This is my new favorite tool used for export tiles due to its UTFGrid support. MBTiles is also a great spec from DevelopmentSeed. Thanks a lot for these GREAT TOOLS, hope 2012 will be a great year for you.

API Side :
- Google Maps JS API v3 :
Still the king of APIs due to its easy use and documentation. Integration with Fusion Tables is a great plus the API.
- Leaflet :
This is also my new favorite with TileMill. The compactness and performance is killing me. I would also want to thank CloudMade to make this available.
- OpenLayers :
This was my old favorite. It has support for almost any thing in GIS but this also make it very slow library if you compare it with Google Maps API or Leaflet.
- ESRI JS API :
I’m very new to this API, but I have to be familiar with it :) One thing is annoying that the usage of DOJO Toolkit with the API.

Google Maps JS Library support : geometry

January 6th, 2011 Comments off

Yesterday, there was an announcement about new supporting library for Google Maps JS API v3, which is Geometry Library.

For almost a year, I have been looking for switching from V2 to v3 and there is one missing point for enterprise level which is geometry support. With geometry support, ExtMap written in v2 will be completely convertible to v3.

The library will not be added by default, you should add some parameters to script loading url (libraries=geometry). This is also a good option to keep file size less for normal users.

This announcement also a good clue for more libraries will come to Google Maps API in 2011.

Wish you a year with more geo news :)

New year wishes…

December 31st, 2010 Comments off

It has been a great year for me and it is closing tonight :D

I have been busy for a new project and I couldn’t find any time to write on blog but I hope it will worth for it.

Anyway, I want to say to all of you :  Happy new year and I wish all of your wishes come true ;)

Categories: personal Tags: ,

Spatial Queries come to Google Fusion Tables

November 12th, 2010 Comments off

Google announced that Maps Data API will be closed next year and they offer a cool replacement : Fusion Tables

Fusion Tables have support for spatial entities but there was a luck of spatial function until yesterday. They announced spatial queries are supported at Fusion Tables.

As far as I see, there are two new functions which are ST_INTERSECTS and ST_DISTANCE. This is a good news that developers can use Fusion Tables instead of Spatial Databases at some point.

Hope they will add more spatial functions to Fusion Tables.

Categories: GeoWeb Tags: , , ,

ExtMap Touch, New Mobile Geo Framework

October 26th, 2010 Comments off

It has been a long time since I wrote a blog entry. I’m quite busy during this period working on different stuff, but the most important one is my new mobile geo framework : “ExtMap Touch”.

I’m quite interested in mobile development for a while and I have 4 iPhone app on App Store. One of them is iExtMap, which is a mobile GIS viewer. iExtMap shows ArcGIS Server Services, WMS, KML/GeoRSS and Tile Services, but the platform is available only for iOS devices which is not good.

Writing a multi-platform viewer is also quite hard due to different code bases on different platforms. Mobile Web is developing very fast due to usage of WebKit on different platforms. Today;  iOS, Android, WebOS, Bada, BlackBerry, Symbian and other platforms are using WebKit implementations on their browsers and this lead to a dream of web developer : “One browser to rule them all” :D

Anyway, I have the idea to write a mobile version of ExtMap, but there is a need for a motivation to start the project. The motivation was “Sencha Touch Developer Contest” and “Sencha Touch Framework” and I started working “ExtMap Touch” on Sencha Touch Framework and Google Maps JavaScript API v3.

I started the project on October 8th, 2010 and finished on October 26th, 2010. The time reminded me the period working on Extmap Summit, which is quite busy and fun :) This project is also a good practice to learn Sencha Touch with HTML5 new features. I want to use almost all features of Sencha Touch and HTML5.

As I told before, project is now working on iOS devices, Chrome and Safari, but it will be working on other mobile browsers when Sencha Touch will be released in stable. It consumes ArcGIS Server Services, WMS, KML/GeoRSS and Tile Services.

There are 4 different base maps, which are

  • Google Maps
  • Bing Maps
  • Open Street Maps
  • Blank (for your own imagery)

There are different tools integrated into project, which are

  • Add Data on the fly
  • GeoLocation (gets your current location via GPS or etc.)
  • Zoom In/Out
  • Identify of ArcGIS Server Services
  • Add/View Bookmarks
  • Show Lat-Lng and Elevation
  • Go to Lat-Lng
  • Geocoding-Reverse Geocoding

All layers and bookmarks are saved on users browser via Web SQL (HTML5 feature) that users can save their data like using native applications.

Another great feature of the application is storing users’ last position (lat-lng-zoom) with map types and opened layers. When user come back to application, he/she can continue working from wherever he/she left from. This information is also stored in Local Storage feature of HTML5.

The base map changes are done via CSS transitions which is quite different than previous ones.

There is only one feature of HTML5 left in my mind, which is Web Cache. I implemented it, but there is a problem with both Google Maps API and ESRI JS API so I decided to add later.

You can view the app or watch the video from the addresses below.

Thats all about the app, hope you like it and wish me a luck in the contest :D

Live Demo : www.extmap.com/touch

Web Url : www.extmap.com