Working With Geographic Labels: What Actually Happens When You Try To Map Continents And Oceans
Most people treat continent and ocean labeling like it's a simple task. It isn't. I've spent years dealing with spatial datasets, and every single time someone says they just need labels for continents and oceans, there's always some edge case that ruins the afternoon. The core problem starts with scale. Continents are massive relative to ocean basins, but oceans wrap around each other and intersect meridians in ways that make automatic label placement a nightmare. If you're using QGIS or ArcGIS with a standard plate carree projection, you'll get overlap within about ten minutes. I learned this the hard way on a project where a client needed clean labels for a world atlas at 1:40 million scale. The automated label placement engine kept shoving "Pacific" into the Atlantic and splitting "Antarctica" across the map edge because the coordinate reference system didn't account for the curvature.
Label Continents And Oceans: The Practical Approach
Here's what actually works when you need to do this without losing your mind. First, don't start with labels. Start with your base layers and projection. Pick a projection that suits your map's purpose. For a full-world map showing all continents and oceans, Robinson or Winkel Tripel are reasonable choices. Avoid equirectangular unless you have a specific reason. The distortion at the poles will make your ocean labels look stretched and unusable. Second, get clean polygon data. Natural Earth has a 1:110m resolution dataset that covers this well. The continent shapes are simplified but adequate for most use cases. If you need higher detail, GSHHG or GMT's coastlines work better. The ocean polygons from Natural Earth are pre-defined and include the major ocean basins: Pacific, Atlantic, Indian, Southern, and Arctic. Some datasets still use "South Ocean" while others call it "Southern." Decide which convention you're using before you start labeling or you'll end up with duplicate labels in the same region.
Third, place labels manually for anything above medium resolution. There is no good automated solution for this. The label engines in both QGIS and ArcGIS will try their best, but they don't understand geography. They'll put "Africa" floating over the Mediterranean because the algorithm optimized for label-background contrast instead of label-placement logic. I once had a fully automated workflow that placed "Australia" directly over New Zealand because the bounding box center calculation was off by a degree due to a datum shift I hadn't noticed. The workaround is straightforward but tedious. Use centroid points as anchor markers, then position your labels by hand in the symbology panel. For QGIS, open the layer properties, go to Labels, switch to "Single Labels" mode instead of "Maplex" or the automatic placer, and drag each label to a sensible position. It takes roughly 30 to 45 minutes for a full world map at poster size. At smaller scales it's faster, maybe 10 minutes, because fewer labels overlap badly. For ocean labels specifically, place them in the widest part of each basin. The Pacific label belongs roughly around 180 degrees longitude and the equator. The Atlantic should sit somewhere between 30 and 40 degrees west. Don't put ocean labels near coastlines unless you're using a very large scale map. At world scale they'll just look cluttered.
Get the Full Details

One thing nobody tells you: label priority matters more than label position. If you're working in a program that supports it, assign continents higher priority than oceans. Continents are the primary geographic features readers care about. Oceans are background context. I've seen too many maps where the ocean names dominate visually because the automatic system gave them equal or higher priority. Your reader will end up reading "Indian Ocean" before they see "Asia," which is backwards. Another counter-intuitive point: font choice and case matter more than you'd expect. All caps for continent names works fine. Ocean names look better in title case with a slightly lighter weight. I usually go with something like Arial Light or Helvetica Neue Light for oceans and Arial Bold for continents. The difference in visual weight helps readers distinguish between land and water without any legend. If you absolutely need automation, there are scripts out there. The most useful one I've found is a Python script using the `cartopy` and `shapely` libraries that calculates label positions based on polygon centroids and applies a simple overlap-avoidance algorithm. It's not perfect. It will still misplace labels near the poles and along map edges. But it gets you to about 80 percent of the way there in five minutes instead of forty-five. From there you clean up the remaining 20 percent by hand.
The main limitation of any automated approach is that it doesn't understand that "Arctic Ocean" is a tiny label for a tiny feature while "Pacific Ocean" needs to be large and central. The algorithm treats all labels equally. This means you'll end up with either all labels the same size, which looks wrong, or you'll manually override each one anyway. In practice, the manual approach is only slightly slower than automating and then fixing, and it produces better results. File format matters too. If you're sharing this map or importing it into another tool, export your labels as a separate vector layer. Keep them in the same coordinate system as your base map. I've seen people convert labels to raster images and paste them on top, which works fine for a one-off PDF but breaks completely if you need to reproject or adjust the map later. Vector labels stay editable. Raster labels are permanently baked in. When it comes to the actual data files, Natural Earth at 1:110m is free and doesn't require registration. You can download it from natural earth data.com. For the Southern Ocean specifically, you may need to clip or merge existing polygon data because not all sources recognize it as a distinct ocean. The IHO standardizes it, but some general-purpose datasets still split it into separate regions or omit it entirely.
There's also the question of what counts as a continent. Some systems label seven continents. Some use six. A few use five. If your audience is mixed, pick one convention and stick with it. I've had clients switch from seven to six in the middle of a project because a partner organization preferred the Eurasia-Africa model. It caused a labeling inconsistency that took two hours to fix because the polygon files and the label files were managed separately. Merge them into a single project file early and keep them together. Finally, don't skip the proofreading step. A misplaced label is one thing. A misspelled label is worse. I once delivered a map with "Greenland" labeled as "Greenlan" because the font rendering at small sizes dropped a character. It wasn't visible on screen. It showed up clearly in print. Check your labels at the final output size, not at the editing size. Zoom to 100 percent or print a test page before you consider it done.
