Hic Sunt Dracones

Here be dragons

» The Roadmap to Roadmaps: A Survey of the Best Online Mapping Tools

Think Google Maps is the only online mapping tool in town? Think again.

These days, there are a ton of excellent tools for online maps of any flavor. Toptal engineer Tomislav Bacinger breaks down the options, and gives you all you need to know to pick the best tool for your every mapping need.

I’ve written an article for a Toptal Engineering Blog that reviews current online mapping frameworks, compares mapping libraries and services with code examples, and gives a little bit of a mapping history.

The Roadmap to Roadmaps: A Survey of the Best Online Mapping Tools.

» Using D3.js to Make Beautiful Web Maps

Manipulating and presenting geographic data can be tricky. If your destination is beautiful custom web maps, it can be tough to navigate the multitude of tools to get there.

Need directions? Toptal engineer Tomislav Bacinger shows the way, demonstrating how the D3.js library fulfills all your cartographic desires.

I’ve written an article A Map to Perfection: Using D3.js to Make Beautiful Web Maps for a Toptal Engineering Blog.

» GPS Coordinates to GK Transformation Tool Hits v1.0

What is new in v1.0

  • As described in my initial GPS Coordinates to Gauss–Krüger Transformation Tool post, Gauss tool was originally developed using OpenLayers v2.12. In the future plans part I mentioned that I would like to move to Leaflet for various reason, and OpenLayers’ big size was the biggest. In the meantime, OpenLayers released new major v3.0 release, so it was time for me to migrate from OpenLayer v2 definitely. After some conteplating, I dedicated to move to Leaflet anyway. I’m not using much of the OpenLayers functionality, and building a custom OpenLayers build is not my thing. So I did rewrite the tool to leverage Leaflet and Proj4js directly.
  • While I was doing code rewrite, I decided to use Bootstrap to get better UI experience, especially on the mobile devices. Also, all raster icons were replaced with Font Awesome icons.
  • Gauss tool is now also available on the GitHub under the MIT License. Feel free to fork the repository.
  • Lastly, Gauss tool is now moved under the gauss.svemir.co subdomain. The old URL is still active, with automatic redirection.

Future plans

Out of my initial future plans list, only the support for additional coordinate systems, namely Gauss–Krüger zone 7, is not realized. So far I didn’t get any request for that feature anyway.

At the moment, I’m thinking to improve the accuracy of the tool by providing more transformation parameters with ability to select more precise transformation parameters for specific areas/counties, namely using Transformation parameters per each county in Croatia document.

Get in touch

If you are using Gauss tool, let me know what you think, and where is tool falling short for you. If you found a bug, please send me an email, or create an issue on the GitHub.

In the end, many thanks to those who did sent me a bug reports, and helped me to resolve them.

Intergraph GeoSpatial Portal 2014 Review

I’ve finally got the project where I could try the latest version of the Intergraph GeoSpatial Portal. Here is my short experience with the Portal, and a few problems that I’ve run into.


Installation is very simple and straightforward. After the installation is finished, just load WebMap Administrator panel in your browser of choice, and you’ll have under New instance menu an option to create a new GeoSpatial Portal instance. The wizard will copy the files from the Portal template folder, and create a new virtual directory under IIS.

After that, Portal is working out of the box, without any customizations needed. That is very nice and enables you to start playing with the Portal vary fast and easy.


Before you start working with the portal I strongly suggest that you read two documents that are provided with the Portal: GeospatialPortal_AdministratorGuide.pdf and GeospatialPortal_UserGuide.pdf.

Most of the Portal customization is done via JavaScript, where you are using Intergraph small API that is extending few Ext.js functionality. For example, you can easily add new custom buttons to the existing toolbars. But if you need to do bigger UI modifications to the Portal, like for example, adding your own toolbar, you will need to purchase a SDK. The problem with a SDK is, that is not clearly priced by Intergraph, and to my knowledge SDK is still not available for the version 2014. Also it is worth mentioning that SDK customizations is done in C#. To read more about the SDK, or just to see JavaScript customizations code examples, go to Geospatial Portal SDK page.

In the end I’ve managed to get most of the my needed features without using a SDK by hacking the UI with my custom HTML and JavaScript, and by applying existing CSS classes to maintain existing Portal style. It is not great, but it is working. That is until Ext.js changes ID values of the HTML elements, because IDs are generated dynamically.

Custom language selection is available, but only if you are lucky enough that Intergraph have provided the translations for your language. Portal cannot be fully localized, if the translation files were not provided. There are few sentences that are available to be changed, but not everything. Some labels and messages are baked and compiled into the solution and offered as a part of Portal. This means that translation cannot be done for the complete Portal, and there will be English captions left in the GUI. Again, with some JavasScript hacks that change innerHTML properties, labels can be changed after the portal loads.

Adding your data to the Portal

Since the Portal already requires Webmap, the easiest way to get your data into Portal is by creating a new WMS service with MapPublisher from the GeoMedia. If you ever worked with a MapPublisher, you know that this is a very simple and automated process with wizards. This means that adding your data via WMS is quite simple. Changing the styles, or adding new layers, just requires you to edit your GeoWorkspace in GeoMedia and hit Publish when you are done. And your changes will reflect in the Portal next time you change zoom level and Portal requests new data from the server.

I remember long time ago that Intergraph was claiming that WebMap and GeoMedia are now sharing the same rendering engine. Unfortunately from my experience, this is not the case. For example, lines need to be much thicker in GeoMedia to be rendered nicely by WebMap. Labels on the other hand need to have background color to be readable. Although you must not use white as a background color because it will result with some strange glitch in the display. Using very light grey solves the problem.

Portal supports searching via WFS-G Gazetteer service. This is where I had most of the problems. The service is not very well documented and steps required to get the service working are very confusing. When you create new WFS-G instance from the AdminConsole, you get preconfigured web.config file with lots of options. Getting a simple searchable feature to work was not easy. Thankfully, after a long email conversation with Intergraph support team, they have send me proper and much simpler web.config file that was working, and was much easier to further customize. Many thanks to Jan from the Intergraph support team for the help! After that, adding a WFS-G service to the Portal resulted with much feature richer Portal. To be honest, without the help from the Intergraph support team, I wouldn’t be able to get it work on my own. Especially getting it to work with my custom SRS.1

On the topic of custom SRS, it is worth mentioning that I didn’t use default EPSG:4326 coordinate system nor the publicly available background maps, like for example Google Maps. All my source data were in one coordinate system, and for display I used different coordinate system. Coordinate transformations worked flawlessly.

To improve and customize UX further, you can intersect featureInfoRequested event and add your own code that will be executed when user clicks on the features. From here, using Ext.js possibilities are endless.


Initially, Portal needs some time to fully load. But after that, it is working quite fast.

If you need to get your data visualized on the web very fast and without much coding, I would recommend using the Portal. Price you will pay for the license, compared to the price you would need to pay some developer to develop the portal from the scratch with all the matching features, or the time you would need to invest to code it by yourself, is marginal. Portal is really feature rich and very simple to do basic customizations. The only question is how much of the customizations you need? The answer is the same like for any rapid development tool – if you are satisfied with 90% of the functionality that the Portal offers, it will save you a lot of time and money. But if you need to do a lot of customizations and custom UI design, or code changes, sooner or later you will hit the wall.

Nevertheless, to get your spatial data visualized fast and easy on the web, Intergraph GeoSpatial Portal is the way to go!

To see the Portal in action head to the Intergraph GeoSpatial Demo Portal.

  1. If you need help with WFS-G, get in touch and I will try to help you.

» EPSG.io - Find a Coordinate System and Get Position on a Map

Klokan Technologies GmbH, Switzerland announced EPSG.io, a new web service that simplifies discovery of coordinate reference systems. New service includes a database of over 6000 coordinate systems used in maps worldwide, based on the official EPSG database that is maintained by OGP Geomatics Committee.

A full text search enables searching by Country, EPSG code or by name of a coordinate system. Each coordinate system has a short and rememberable permanent link i.e. http://epsg.io/4326 and is exportable in various formats (WKT, OGC GML, XML, Proj.4, SQL and JavaScript). The whole project is open-source and available on GitHub. On GitHub is also documentation about its API that allows integration of the search functionality and transformations in third party applications.


How does EPSG.io differs from Spatial Reference that offers a similar service?

  • It is much easier to find the coordinate systems (for example query “utm wgs norway” gives list of all UTM zones with WGS covering area of Norway).
  • All available transformations for selected coordinate reference system are visible and applicable (it is possible to find alternative 7 parameter transformation for Proj4js replacing a default grid transformation, or choose a transformation with higher accuracy for a selected area).
  • Preview location for any numerical coordinates on a detailed map – with copy&paste functionality.
  • Complete EPSG database with codes for datums, units, transformations, etc is indexed and searchable, and the individual EPSG records are linked from every detail page.

Take Your Drone for a Walk and Shoot Some Aerial Photos on the Way

Zurich-based academic and researcher Sergei Lupashin had an idea – to put the quadcopter on a leash. The story behind it is to show that a leash can completely change the nature of a drone and that it eliminates a need for special piloting skills. Lupashin compares a drone on a leash to a kite, and therefore calls it Fotokite.

At the core of the Fotokite approach is the “keep it simple” philosophy. There’s no remote control and there is no GPS unit, just accelerometers and a gyro that measures the speed of rotation. The software on board of the Fotokite takes care of maintaining the same relevant angle to the direction its “pilot” is moving. This allows a steady control over photos and video shots from above.

And what is the best part? Because of the tether, the drone is not autonomous. And because it is not autonomous, it falls outside of regulation on “unmanned aerial vehicles” in most cases. Especially in the United States where Federal Aviation Administration regulations on “unmanned aerial vehicles” don’t apply to tethered aircrafts. Fotokite

Hubsan X4 H107C Review

For a long time now, I have been reading stories about drones (also known as Unmanned Aerial Vehicles (UAV) or Unmanned Aerial Systems (UAS)) and their use in surveying. Drones have altered modern-day photogrammetry by easing capturing of photogrammetric geodata, especially compared to satellites, airborne photogrammetry and traditional land surveying. They are more immune to bad weather than satellites or aircrafts, and they are much cheaper to run. All this intrigued me to buy one. But the problem was their high price, and very long and steep learning curve to properly fly them without breaking them, or hurting somebody on the way.

Until I’ve found interesting and very affordable little drone with a camera – Hubsan X4 H107C. It is small 2.4Ghz 4 channels RC quadcopter with 0.3 MP camera, 6-axis gyro and flying outdoor ability. It was a perfect way for to me to get into drones for affordable price. After some googling, I’ve found it on the Chinese webshop called Banggood. The shop has very mixed people reviews, but I’ve decided to take a shoot and ordered one from them. I also bought reserve battery and 16GB MicroSD card to have more flying time and to record video.

After a standard one month of waiting for a package from China, the drone has arrived. Everything was very nicely packaged and I had no complains. I opened the box, and in the time I recharged two batteries I’ve read the instructions. Nothing complicated I thought. But how wrong I was!

I did some initial calibration, and on the first lift-off drone smashed to the wall. Of course, one little blade was completely broken with other blades severely damaged.

This was the end of my first test flight.

I’ve ordered immediately new replacement blades set, plus few additional spare blades, plus protection cover so the next time I hit the wall I have at least some buffer. Again, one month later the spare parts arrived and I was ready for new round of testing. This time I was smarter and better prepared.

While I was waiting for spare parts to arrive, I was reading and watching YouTube videos on how to calibrate and fly the drone properly. After I replaced all the blades with new ones and fitted cover protection, X4 was ready for a new test flight. Before I moved furniture away, and placed the drone in the middle of an empty room. The second lift-off and test flight was much more successful.

Drone reacts very fast to the commands and is very agile. If you are flying indoor, the X4 will skid around the floor until it reaches a point above the turbulence created by its spinning propellers. You need to lift X4 at least one meter from the ground to get into a clean air. Of course I crashed the drone few more times, but thanks to the protection cover I didn’t break any more blades. The most important thing to bear in mind is that when X4 crashes you need to cut the throttle to zero immediately! This way you protect the blades and the motors. If the motors are unable to rotate during a crash, they will burn out quickly.

X4 comes with 3.7V 380mAh battery with declared flight time around 7 minutes and charging time 40 minutes. My experience confirmed this. However, if you are recording with a camera and doing a lot of manoeuvring (especially if you are flying indoor), the actual flight time is around 5 minutes. This is why you need to invest in some additional batteries. I have at the moment 3 batteries which provide around 15-20 minutes of flying.

Although X4 looks like a child’s toy, it is not. It should be treated with the respect of a full scale drone and it takes patience and lots of practice to be able to fly it properly. Some people are suggesting that you need to invest 10’s of hours into practicing before you can do anything spectacular like pre-programmed flips, or especially if your want to record a nice and stable video.

The Hubsan features 6-axis stabilization system, but it doesn’t have any autopilot mode, which means that it is unable to hover on its own. The X4 needs to be ‘flown’ all the time to maintain an even hover and stable flight. When flying the X4 drone, continual stick inputs are necessary. You must counter the directional movement with reverse stick movements e.g. moving the pitch stick forward will cause the X4 to fly forwards, and to return the X4 to steady hover, you will need to apply back stick momentarily to halt the forward motion.

Outdoor flying is much better experience and more enjoyable than indoor, mostly because you have more free and open space. The X4 is very fast and stable even in windy conditions. When landing you need to be careful not to hit the ground too hard because the plastic housing could break. Soft grass is the best for landing, but you still need to be careful. X4 features 4 little LED lights in two colours that help you better sighting and orienteering. But don’t fly X4 too far away initially, orientation may become a problem with the X4 easily lost against a backdrop of trees, bushes and ground cover. With all this in mind, and initial fear from flying and crashing, I didn’t test its range.

My original plan was to include videos in this review, but my flying skills are not yet that good to produce stable and watchable videos. I’ll post them as soon I’ll have some good and representable footage. In the meantime you can check videos by other Hubsan X4 pilots.

All in all, Hubsan X4 H107C is great little beast and very fun to fly. I would recommend it to anyone interested in RC and drones with limited budget. Just buy a lot of spare parts because you will need them, sooner or later.

» Earth - Global Wind Map

“earth”, a global wind map of the entire world, is a visualization of global weather conditions, based on weather forecast made by supercomputers of National Centers for Environmental Prediction, NOAA / National Weather Service. It is created by Cameron Beccario in a way that first the script downloads and process Global Forecast System weather data in GRIB2 format every three hours, converts the data to JSON and then push them to static hosting. JSON data are calculated and interpolated in user’s browsers and finally shown as a rendered animated 3D wind map.

Wind is represented with green to red to purple gradients, where purple represent greater wind velocity, and the flow of the lines indicates wind direction. You can pull and drag the earth around its axis with a mouse, while mouse click on any location will bring a clicked coordinates and wind speed at that location. You can customize displayed data; like heights for the wind velocity readings, change overlayed data and even change Earth projection!


It is worth noting that the project “earth” was build using only JavaScript frameworks, namely: D3.js, when.js, backbone.js, node.js.

Migration From WordPress to OctoPress

I migrated svemir.co blog from WordPress to OctoPress. Why? you might ask. Wordpress was working great for me and I didn’t have any major issues with it. But it was never a perfect solution for me, and I was always looking for a replacement. Until I’ve found OctoPress, a blogging framework for hackers.

Here are some benefits:

  • Security – no more problems with WordPress nor PHP vulnerabilities.
  • Performance – no more databases, just pure static files, and they are fast.
  • Cost – static files are hosted on Amazon S3 which is very cheap.
  • Design – finally I’m able to use my own design and write custom CSS. And the most important, use custom web fonts of my choice.
  • Subdomains – on WordPress.com you have to pay if you want to use your own domain, and then you need to pay again for every subdomain you want to use.
  • Learning – I’ve learned whole bunch of new technologies, primary Python and Markdown.

OctoPress is definitely blogging framework for hackers; you work just with text editor and terminal. If you are working on Windows, this brings hacking to a whole new level. But I have no regret – it was a fun and educational migration process.

Anyway, blog is now migrated; there are still few small glitches that I need to fix, but as a whole everything is working very well. And in the end, I hope you’ll enjoy new design and reading my blog as much as I enjoyed making it.

If All the Ice Melted Maps

If all the ice on land has melted and drained into the sea, the sea level would raise 216 feet (66 meters) and create new shorelines for our continents and inland seas.

National Geographic created interactive maps that show how would world coastlines look like if all the polar ice caps melt.

Melted Europe

In Europe a lot of big and famous cities would go the away under the rising seas; like Copenhagen, Amsterdam, Venice, Riga, Lisbon, even London.

Melted NA

On the other side of the Atlantic Ocean the situation wouldn’t be any better, if even worse, the whole Florida would be not more, and most of the Eastern Coast of the United States would also go under see, including Boston, New York, Washington, D.C, and New Orleans.

There are more than five million cubic miles of ice on Earth, and some scientists say it would take more than 5,000 years to melt it all. If we continue adding carbon to the atmosphere, we’ll very likely create an ice-free planet, with an average temperature of perhaps 80 degrees Fahrenheit instead of the current 58.

I would love to see true interactive ice melting map, where GIS would be used. But nevertheless, these National Geographic maps are still very fascinating view of what might and probably will be in the not so far away future.