{"id":15058980,"url":"https://github.com/indoorequal/openlayers-indoorequal","last_synced_at":"2026-03-12T21:00:51.757Z","repository":{"id":42630213,"uuid":"387281108","full_name":"indoorequal/openlayers-indoorequal","owner":"indoorequal","description":"An OpenLayers plugin to display data from indoor=","archived":false,"fork":false,"pushed_at":"2026-03-08T06:31:05.000Z","size":14552,"stargazers_count":14,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-08T13:55:53.067Z","etag":null,"topics":["indoor","indoor-map","indoorequal","openlayers","openlayers-plugins","openstreetmap"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indoorequal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-07-18T22:29:53.000Z","updated_at":"2026-03-08T06:31:08.000Z","dependencies_parsed_at":"2024-04-15T08:39:32.527Z","dependency_job_id":"ef4a1fa3-a21a-49cd-8225-eab057f3072a","html_url":"https://github.com/indoorequal/openlayers-indoorequal","commit_stats":{"total_commits":99,"total_committers":2,"mean_commits":49.5,"dds":0.101010101010101,"last_synced_commit":"59e74a4fcf342cb00ba8524f481bab42a605681e"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/indoorequal/openlayers-indoorequal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indoorequal%2Fopenlayers-indoorequal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indoorequal%2Fopenlayers-indoorequal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indoorequal%2Fopenlayers-indoorequal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indoorequal%2Fopenlayers-indoorequal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indoorequal","download_url":"https://codeload.github.com/indoorequal/openlayers-indoorequal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indoorequal%2Fopenlayers-indoorequal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30444283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T20:23:30.529Z","status":"ssl_error","status_checked_at":"2026-03-12T20:23:14.027Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["indoor","indoor-map","indoorequal","openlayers","openlayers-plugins","openstreetmap"],"created_at":"2024-09-24T22:34:49.189Z","updated_at":"2026-03-12T21:00:51.741Z","avatar_url":"https://github.com/indoorequal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# openlayers-indoorequal ![build](https://img.shields.io/github/actions/workflow/status/indoorequal/openlayers-indoorequal/ci.yml?branch=main) [![npm](https://img.shields.io/npm/v/openlayers-indoorequal)](https://www.npmjs.com/package/openlayers-indoorequal)\n\nopenlayers-indoorequal is an [OpenLayers][ol] library to display indoor data from [indoor=][].\n\nIt provides:\n\n*   a default style of the indoor tiles\n*   a way to customize the style\n*   a level control to change the level displayed on the map\n*   a programatic API to list the levels available and set the level displayed\n\n[**See the demo**](https://indoorequal.github.io/openlayers-indoorequal/).\n\nDiscover:\n\n*   the frontend: \u003chttps://github.com/indoorequal/indoorequal.org\u003e\n*   the backend: \u003chttps://github.com/indoorequal/indoorequal\u003e\n\n## OpenLayers compatibility\n\n*   OL \u003c 8: use version 0.0.8\n*   OL 8 \u0026 9: use version ~0.1.0\n*   OL 10: use version \u003e= 0.2.0\n\n## Install\n\n**With NPM**\n\n    npm install --save openlayers-indoorequal\n\n**In the browser**\n\n```html\n\u003cscript src=\"https://unpkg.com/openlayers-indoorequal@latest/dist/openlayers-indoorequal.umd.min.js\"\u003e\u003c/script\u003e\n\u003clink href=\"https://unpkg.com/openlayers-indoorequal@latest/openlayers-indoorequal.css\" rel=\"stylesheet\" /\u003e\n```\n\n## Example\n\nGet your free key at [indoorequal.com](https://indoorequal.com).\n\n```javascript\nimport Map from 'ol/Map';\nimport TileLayer from 'ol/layer/Tile';\nimport OSM from 'ol/source/OSM';\nimport IndoorEqual, { LevelControl } from 'openlayers-indoorequal';\nimport 'openlayers-indoorequal/openlayers-indoorequal.css';\n\nconst apiKey = '\u003cyour-indoorequal-api-key\u003e';\n\nconst map = new Map({\n  target: 'map',\n  layers: [\n    new TileLayer({\n      source: new OSM(),\n    }),\n  ],\n});\n\nconst indoorEqual = new IndoorEqual(map, { apiKey });\n\nconst control = new LevelControl(indoorEqual);\nmap.addControl(control);\n```\n\n## Loading the default sprite\n\nThe default style make uses of a sprite that has to be loaded manually and require an absolute path. The sprite is already builded and available in the `sprite` directory.\n\nTo load the sprite, set the `spriteBaseUrl` property option on the constructor with the absolute path to the sprite and its name `/directory-to-change/indoorequal`.\n\n**Usage with [Parcel](https://parceljs.org/)**\n\nInstall the\n[parcel-plugin-static-files-copy](https://github.com/elwin013/parcel-plugin-static-files-copy)\npackage and add to your `package.json`:\n\n    \"staticFiles\": {\n      \"staticPath\": \"node_modules/openlayers-indoorequal/sprite\"\n    },\n\nThen load the sprite:\n\n```javascript\nconst indoorequal = new IndoorEqual(map, { apiKey: 'myKey', spriteBaseUrl: '/indoorequal' });\n```\n\n**Usage with [webpack](https://webpack.js.org/)**\n\nInstall the\n[copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin)\npackage and add to your webpack config:\n\n```javascript\nconst CopyPlugin = require('copy-webpack-plugin');\n\nmodule.exports = {\n  plugins: [\n    new CopyPlugin({\n      patterns: [\n        { from: 'node_modules/openlayers-indoorequal/sprite' },\n      ],\n    }),\n  ],\n};\n```\n\nThen load the sprite:\n\n```javascript\nconst indoorequal = new IndoorEqual(map, { apiKey: 'myKey', spriteBaseUrl: '/indoorequal' });\n```\n\n## API\n\n\u003c!-- Generated by documentation.js. Update this documentation by updating the source code. --\u003e\n\n#### Table of Contents\n\n*   [LevelControl](#levelcontrol)\n    *   [Parameters](#parameters)\n*   [IndoorEqual](#indoorequal)\n    *   [Parameters](#parameters-1)\n    *   [setStyle](#setstyle)\n        *   [Parameters](#parameters-2)\n    *   [setHeatmapVisible](#setheatmapvisible)\n        *   [Parameters](#parameters-3)\n*   [IndoorEqual#change:levels](#indoorequalchangelevels)\n*   [IndoorEqual#change:level](#indoorequalchangelevel)\n\n### LevelControl\n\n**Extends Control**\n\nA control to display the available levels\n\n#### Parameters\n\n*   `indoorEqual` **[IndoorEqual](#indoorequal)** the IndoorEqual instance\n*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**  (optional, default `{}`)\n\n    *   `options.target` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Specify a target if you want the control to be rendered outside of the map's viewport.\n\nReturns **[LevelControl](#levelcontrol)** `this`\n\n### IndoorEqual\n\n**Extends BaseObject**\n\nLoad the indoor= source and layers in your map.\n\n#### Parameters\n\n*   `map` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** the OpenLayers instance of the map\n*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**  (optional, default `{}`)\n\n    *   `options.defaultStyle` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** False to not set the default style. Default true.\n    *   `options.spriteBaseUrl` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** The base url of the sprite (without .json or .png). If not set, no sprite will be used in the default style.\n    *   `options.url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Override the default tiles URL (\u003chttps://tiles.indoorequal.org/\u003e).\n    *   `options.apiKey` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** The API key if you use the default tile URL (get your free key at [indoorequal.com](https://indoorequal.com)).\n    *   `options.heatmap` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Should the heatmap layer be visible at start (true : visible, false : hidden). Defaults to true/visible.\n\nReturns **[IndoorEqual](#indoorequal)** `this`\n\n#### setStyle\n\nSet the style for displayed features. This function takes a feature and resolution and returns an array of styles. If set to null, the layer has no style (a null style), so only features that have their own styles will be rendered in the layer. Call setStyle() without arguments to reset to the default style. See module:ol/style for information on the default style.\n\n##### Parameters\n\n*   `styleFunction` **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** the style function\n\n#### setHeatmapVisible\n\nChange the heatmap layer visibility\n\n##### Parameters\n\n*   `visible` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** True to make it visible, false to hide it\n\n### IndoorEqual#change:levels\n\nEmitted when the list of available levels has been updated\n\nType: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\n\n### IndoorEqual#change:level\n\nEmitted when the current level has been updated\n\nType: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\n\n## Develop\n\n**Run tests**\n\n    yarn test [--watch]\n\n**Build a new version**\n\n    yarn build\n\n**Generate the documentation**\n\n    yarn doc\n\n## License\n\nBSD\n\n[indoor=]: https://indoorequal.org/\n\n[ol]: https://openlayers.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findoorequal%2Fopenlayers-indoorequal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findoorequal%2Fopenlayers-indoorequal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findoorequal%2Fopenlayers-indoorequal/lists"}