Code Monkey home page Code Monkey logo

jekyll-maps's Introduction

Jekyll Maps

Gem Version Build Status Code Climate Test Coverage Dependency Status

Jekyll Maps is a plugin that allows you to easily create different maps on your Jekyll site pages. It allows you to select which points to display on the map with different filters.

GoogleMaps Marker Clusterer can be used if you have many points within close proximity.

Installation

  1. Add the following to your site's Gemfile:
gem 'jekyll-maps'
  1. Add the following to your site's _config.yml:
plugins:
  - jekyll-maps

Usage

Configure Google API Key

To be able to use Google Maps you need to obtain API Key.

Once you have your API Key you need to add it to Jekyll's _config.yml:

maps:
  google:
    api_key: <YOUR_KEY>

Data Source

First, add location information to your posts YAML front-matter:

location:
  latitude: 51.5285582
  longitude: -0.2416807

You can specify multiple locations per post:

location:
  - latitude: 51.5285582
    longitude: -0.2416807
  - latitude: 52.5285582
    longitude: -2.2416807
  - title: custom marker title
    image: custom marker image
    url: custom marker url
    latitude: 51.5285582
    longitude: -0.2416807

Alternatively, you can add location info to your custom collection's documents or even in data files:

- title: Paris
  url: http://google.fr
  location:
    latitude: 48.8587741
    longitude: 2.2074741

- title: Madrid
  url: http://google.es
  location:
    latitude: 40.4378698
    longitude: -3.8196204

By default this plugin will display location from the page it's placed on:

{% google_map %}

But you can use src attribute to load locations from other places, like posts, collections or data files!

For example, this map will show locations from all posts from 2016:

{% google_map src="_posts/2016" %}

This map will show locations from a collection called 'my_collection':

{% google_map src="_collections/my_collection" %}

This map will show locations from all data files located in 'my_points' sub-folder:

{% google_map src="_data/my_points" %}

You can configure map's dimensions and assign custom CSS class to the element:

{% google_map width="100%" height="400" class="my-map" %}

You can also just set marker coordinates directly in tag attributes:

{% google_map latitude="48.8587741" longitude="2.2074741" marker_title="My Location" marker_img="/img.jpg" marker_url="/my-location.html" %}

This will create a map with single marker in given location. marker_title, marker_img and marker_url attributes are optional and current page's data will be used by default.

Filters

You can also filter which locations to display on the map!
For instance, following tag will only display locations from documents which have lang: en in their front-matter data.

{% google_map src="_posts" lang="en" %}

Marker Cluster

By default Marker Clusterer is enabled. If you have many markers on the map, it will group them and show icon with the count of markers in each cluster - see example.

If you don't want to use marker cluster, you can disable it globally in _config.yml:

maps:
  google:
    marker_cluster:
      enabled: false

Or you can disable it per single map tag:

{% google_map no_cluster %}

If you have any questions or proposals - open up an issue!

Examples

Want to see it in action? Check out Demo Page!

Contributing

  1. Fork it (https://github.com/ayastreb/jekyll-maps/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

MIT. Feel free to use, copy or distribute it.

jekyll-maps's People

Contributors

ayastreb avatar oliverevans96 avatar dhoppe avatar lpelypenko avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.