npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

world-geojson

v3.1.1

Published

GeoJson for all the countries, areas (regions) and some states.

Downloads

1,194

Readme

SWUbanner

World boundaries in GeoJSON format

This repository contains GeoJSON data for all the countries boundaries including boundaries for states of bigger countries (note that this repository is currently filling). Detalization is good for using this data on scales up to 1:10000000 / gmaps zoom 6-7 (it's the best quality in combination with free-to-use license). Data is created using geojson.io tool.

Quality example

Getting started

You can either download it or install in your project either via Composer or NPM:

Via Composer:

"require": {
  "georgique/world-geojson": "^3.0"
}

Via NPM:

"dependencies": {
  "world-geojson": "^3.0",
}

Help with integrating it with any other Package Manager is welcome.

Usage

JSON files can be read from the directory in which the package was downloaded.

Node.js

Node.js applications can use the provided helper functions to synchronously load the JSON as a JavaScript object.

const geoJson = require('world-geojson') // or `import * as geoJson from 'world-geojson'`

geoJson.forCountry('Antigua & Barbuda'); // returns the contents of /countries/antigua_and_barbuda.json
geoJson.forState('Australia', 'New South Wales'); // returns the contents of /states/australia/new_south_wales.json
geoJson.forArea('U.S.A.', 'U.S. Virgin Islands'); // returns the contents of /areas/usa/us_virgin_islands.json

// Combine multiple GeoJSONs into one
const combined = geoJson.combineGeoJson([
  {countryName: 'Antigua & Barbuda'},
  {countryName: 'Australia', stateName: 'New South Wales'}, 
  {countryName: 'U.S.A.', areaName: 'U.S. Virgin Islands'} 
]);

Countries (release 1.0)

Contries boundaries besides mainlands include all the geographically separated, but de jure dependent, associated and managed territories. Separated mainland and all the territories mentioned are added in release 2. Countries states are to be added in release 3. More about countries boundaries release here.

Additional areas (release 2.0)

Besides bigger countries which are to be splitted into states, some smaller are also worth to be splitted into geographical areas. More about additional area boundaries release here.

Countries split into areas are:

  • Azerbaijan (2): Mainland/Nakhchivan
  • Denmark (3): Mainland/Greenland/Faroe Islands
  • Ecuador (2): Mainland/Galápagos Islands
  • France (18): Mainland/Corsica/French Guiana/Guadeloupe/Martinique/Mayotte/Réunion/Clipperton Island/French Polynesia/New Caledonia/Saint Barthélemy/Saint Martin/Saint Pierre and Miquelon/Wallis and Futuna/French Southern and Atlantic Lands
  • Italy (3): Mainland/Sardinia/Sicily
  • Netherlands (7): Mainland/Bonaire/Saba/Sint Eustatius/Aruba/Curaçao/Sin Maarten
  • New Zealand (12): Mainland/North Island/South Island/Tokelau/Kermadec Islands/Chatham Islands/Three Kings Islands/Antipodes Islands/Auckland Islands/Bounty Islands/Campbell Island/Snares Islands
  • Norway (3): Mainland/Svalbard/Jan Mayen
  • Portugal (3): Mainland/Azores/Madeira
  • Spain (3): Mailand/Canary Islands/Balearic Islands
  • United Kingdom (21): United Kingdom/England/Scotland/Wales/Northern Ireland/Isle of Man/Guernsey/Jersey/Gibraltar/Akrotiri and Dhekelia/Bermuda/Turks and Caicos Islands/British Virgin Islands/Anguilla/Cayman Islands/Montserrat/Pitcairn Islands/Saint Helena, Ascension and Tristan de Cunha/British Indian Ocean Territory/Falkland Islands/South Georgia and the South Sandwich Islands
  • USA (17): Mainland (to be split to states in v3)/Palmyra Atoll/Guam/Northern Mariana Islands/Puerto Rico/United States Virgin Islands/American Samoa/Baker Island/Howland Island/Jarvis Island/Johnston Atoll/Kingman Reef/Wake Island/Midway Atoll/Navassa Island/Serranilla Bank/Bajo Nuevo Bank

Aligned borders for all the countries (release 3.0 - published)

This release is about gluing borders between all the countries so they perfectly align. Was / Is:

Also, NPM this package can now be installed via NPM

Aligned borders and better state borders for AU, CA and USA (release 3.2)

  • Glued borders for AU states (100% - published in 3.1)
  • Better Canadian province borders (0%)
  • Glued borders for Canadian provinces (0%)
  • Better USA state borders
  • Glued borders for USA states (0%)

States boundaries (release 4.0)

Countries which we are going to provide state boundaries for:

  • Australia (ready)
  • Argentina (pending: 24)
  • Brazil (pending: 26)
  • Canada (ready / OSM / low quality)
  • China (pending: 33)
  • India (pending: 29)
  • Indonesia (pending: 34)
  • Kazakhstan (pending: 14)
  • Mexico (pending: 31)
  • Philippines (pending: 18)
  • Russia (pending: 83)
  • USA (ready, OSM data)

Note that some states boundaries are provided by OSM, however quality of that data is much lower. It's planned to replace them with handmade ones eventually.

Help wanted

  • Providing geojson for any regions - not necessarily from the roadmap above, any country's regions can be included
  • Integration with any package managers other than NPM and Packagist

Reference


This library is my personal mini-project which I enjoy doing and I am happy if that is useful for anyone else. If you want to thank me, feel free to buy me a cup of coffee through the GitHub Sponsor program.