MapInfo Pro

MapInfo Monday: Combining Buffers and Voronoi Polygons

  • 1.  MapInfo Monday: Combining Buffers and Voronoi Polygons

    Posted 03-08-2021 04:05
    Happy #MapInfoMonday,

    We have earlier looked into creating polygons from points using buffers and using Voronoi polygons. Today, ​we will combine the two to get a result the reflects the coverage of locations and still divides this by the closest distance between two locations.

    This example was raised as a question by our Swedish partner SOKIGO who also ended up answering the question themselves.

    The main idea here is based on the fact, that you can use a Target object to limit and extend the size of the Voronoi polygons created. In this example, this Target object is a combined buffer around the input locations.

    Just a quick reminder, this is how it looks when you create buffers around your input points

    And this is how it looks if you create Voronoi polygons around the same input points.

    Let me show you have you can combine the two.

    Creating a single combined buffer

    The first step is to create a single combined buffer around all the input points. Use Buffer Table from the Buffer dropdown on the Spatial tab, select your input table and select to store the results in a new table. This process will help you create a new table. In the dialog New Table, select to add it to the current map and to base the table structure of the new table on the input table.

    Accept the proposed table structure. As we won't be using this too much, you can also decide to remove all but one column.

    In the dialog Buffer Objects, you must enter the distance that your locations should cover - also remember to check the distance unit used. And then you must select the option One buffer for all objects. This will result in a single combined polygon created by merging all the buffers around the individual input locations. We need this as the Voronoi process only accepts one target object as input.

    In the dialog Data Aggregation, you can go through all the columns and make sure the values calculated make sense. Or you just ignore this as we basically only need the spatial object.

    The result of this first step, to create a single buffer around the input points, looks like what you can in the map below. Notice how all the internal lines are gone because we have combined the individual buffers into a single polygon.

    Creating the Voronoi polygons

    It's time to create the Voronoi polygons.

    First, we have to set the buffer polygon as the Target object. By default, the polygon is selected and the layer is made editable. This means you can just hit the Set Target command on the Spatial tab, or use the Ctrl+T shortcut. Now we have defined the area we want the Voronoi polygons to cover.

    On the Spatial tab in the Regions dropdown, click the Voronoi (Table) command. Select your table with input locations and select to store the result in a new table. You can follow the instructions in the earlier post on creating Voronoi polygons if you are in doubt of the settings.

    The final result looks as you can see in the map below.

    This might look a bit advanced but basically what this tells you is that you can create the extent of your Voronoi polygons in multiple ways. In my earlier article on creating Voronoi polygons, I was using an ellipse that I had hand-drawn. You can use an existing postal or administrative boundary as the extent, or combine multiple postal/administrative boundaries.  Or you could also create 30-minute drivetime polygons around all your input points, combine these into a single polygon and use this as the extent for your Voronoi polygon.

    I hope you found this useful and that you got a bit of inspiration on how you can create an extent for your Voronoi polygons.

    Peter Horsbøll Møller
    Principal Presales Consultant | Distinguished Engineer
    Precisely | Trust in Data