{"action":"created","comment":{"url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/comments/171683777","pull_request_review_id":100575281,"id":171683777,"diff_hunk":"@@ -0,0 +1,682 @@\n+---\n+title: Developing with px-map\n+moduleName: view-develop-map\n+pathToRoot: ../../\n+layout: default\n+---\n+\n+<style>\n+  .gif {\n+    width: 100%;\n+    margin-top: .25rem;\n+  }\n+</style>\n+\n+# Overview\n+Px-map is a lightweight framework for building interactive maps with web\n+components and Polymer. The framework includes a base mapping component (`<px-map>`)\n+that can be used with many different subcomponents to solve common mapping UI\n+problems, like plotting geographic data.\n+\n+The current major release of px-map uses the open source [Leaflet](http://leafletjs.com/)\n+library to support displaying a map with base tiles and geospatial overlays.\n+Future iterations of the component may offer the ability to use a different\n+library in place of Leaflet, while keeping the same basic API.\n+\n+Out of the box, `px-map` includes the basic things needed to draw and plot data\n+on an interactive map. It is also extensible — development teams are encouraged\n+to build their own subcomponents that add features needed for their application.\n+We currently do not support visualizations, but any open source Leaflet plugin\n+can be easily converted to be a px-map custom layer.\n+\n+# Basic concepts\n+\n+Use the map to plot geographic data such as individual assets or clusters of\n+assets and information about them. The data concepts underlying the map include:\n+\n+- **Base layer:** The base layer of a map renders tile images that include\n+information such as streets, mountains, and national parks. For example,\n+satellite, terrain, and map view are all different base layer styles.\n+- **Overlay:** Information that is put on top of a map's base layer that is\n+specific to the purpose of that map. For example, traffic data or bike lane\n+information might be set as an overlay on a road map.\n+- **Control:** A map layer that allows the user to manipulate the map, e.g. by\n+zooming in, out, or to their current location.\n+- **CRS:** A CRS is a coordinate reference system (also known as a coordinate\n+relationship system or coordinate projection system) used to project\n+geographical points into pixel coordinates.\n+\n+## Graphic: map layers\n+\n+# Subcomponents\n+\n+The following subcomponents are available for use with px-map:\n+\n+**Base map**\n+\n+- `<px-map>`: Draws the underlying map, sets location/zoom and notifies updates\n+when the user interacts with the map, enables and disables interactions,\n+orchestrates subcomponents\n+\n+**Tile layers**\n+\n+- `<px-map-tile-layer>`: Calls a tile service API to fetch underlying tile images\n+for the map\n+- `<px-map-tile-layer-bing>`: Calls the Bing Maps API to fetch underlying tile\n+images for the map\n+- `<px-map-tile-layer-google>`: Calls the Google Maps API to fetch underlying\n+tile images for the map\n+- `<px-map-tile-layer-wms>`: Displays WMS services as tile layers on the map.\n+\n+**Overlay/visualization layers**\n+\n+- `<px-map-layer-geojson>`: Draws GeoJSON data as vectors on the map\n+- `<px-map-layer-group>`: Groups related overlays together to allow for bulk\n+interactions (e.g. hide all in the group)\n+- `<px-map-marker-static>`: Creates a marker that shows the state of a point/asset\n+(e.g. with color)\n+- `<px-map-marker-symbol>`: Creates a marker with an icon that shows the state\n+of a point/asset\n+- `<px-map-marker-locate>`: Creates a marker that represents the user's location\n+- `<px-map-marker-group>`: Draws many markers in clusters, useful for visualizing\n+thousands of points that can be dynamically updated\n+\n+**UI components**\n+\n+- `<px-map-popup-info>`: Binds a popup that can include text or an image to a marker\n+- `<px-map-popup-data>`: Binds a popup that can include text and key/value data\n+to a marker\n+\n+**Controls**\n+\n+- `<px-map-control-zoom>`: Adds zoom buttons the user can tap to zoom in or out\n+of the map\n+- `<px-map-control-scale>`: Adds a scale that shows the distance of an area on\n+the map in miles/kilometers\n+- `<px-map-control-locate>`: Adds a button the user can tap to locate themselves\n+on the map and center the map on their location\n+\n+# Set up in your app\n+\n+## Choosing a CRS\n+\n+A CRS is framework for defining real-world locations that attempts to reconcile\n+the geoid shape of the earth with the two-dimensional plane of a map. The CRS can\n+only be set once before the map is first initialized. Px-map defaults to the most\n+common web mapping projection [EPSG 3857](https://epsg.io/3857). Most use cases\n+do **not** require changing the default CRS being used by px-map, and we strongly\n+recommend using the default. If your customers give you data in a different\n+projection system, you can either (1) re-project that data to our CRS (recommended),\n+or (2) set the CRS on the map to the same one being used by your data with the\n+`crs` property on px-map.\n+\n+```html\n+// Add a one line code example here\n+```\n+\n+## Choosing a base map provider\n+\n+Typically, a map will display your data against a base map, such as a road map\n+or satellite imagery.  This base map is a set of map tiles that are pieced\n+together by the map to provide a seamless backdrop. Despite the almost ubiquitous\n+presence of base map tiles in maps, access to use them is not free. The data\n+contained within the base map tiles is generally copyrighted and requires a fee\n+for use. Large scale map providers like Google and Bing provide free access to\n+map tiles for development purposes, but there is usually a usage limit which\n+prevents developers from deploying them in production applications.\n+\n+Even for data providers like OpenStreetmap (OSM) that provide access to copyright-free\n+data, there is usually a charge to cover the costs of maintaining the tile servers\n+that manage and provide the individual tiles.\n+\n+Px-map provides support for OSM, Bing, and Google, provided that you have an\n+appropriate usage key. Fees are typically calculated based on the number of tile\n+requests your application will make over a given period, normally a month.\n+Budgeting for this expense can be difficult as you need to understand the number\n+of map tile requests an individual user is likely to make per month and extrapolate\n+this based on the number of users you expect to use the app per month. As the tiles\n+are a fixed size, the size of the map in the application will dictate the number\n+of tiles needed to cover it.\n+\n+It is also worth noting that map tile providers may impose additional constraints\n+on how you can use the map tiles in your application. The providers may prevent\n+you caching the tiles when the device is offline, or require that you display\n+their attribution within the map. Always make sure you review and understand the\n+terms and conditions of your agreement with the map tile provider.\n+\n+**Base map styling**\n+\n+Base map providers typically have more than one base map style, so you can choose\n+one that shows the information that you need, styled in a way that shows off your\n+data.\n+\n+Standard Google Maps style:\n+\n+<img src=\"../../img/developer-guides/map/map-tile-layer-1.png\"/>\n+\n+Google Maps with points of interest turned off:\n+\n+<img src=\"../../img/developer-guides/map/map-tile-layer-2.png\"/>\n+\n+Google Maps with a dark theme:\n+\n+<img src=\"../../img/developer-guides/map/map-tile-layer-3.png\"/>\n+\n+\n+**Tile service options**\n+\n+Most px-map demos use the OpenStreetMap public tile service to serve map tiles\n+(e.g. `https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`) with the\n+px-map-tile-layer subcomponent. This tile service is used for demo purposes only.\n+**You should not use this tile service for production applications; you will\n+need to implement or purchase your own tile service.**\n+\n+The [OpenStreetMap Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/)\n+details specific restrictions for developers using their public tile service.\n+These restrictions include the following provision: \"Heavy use (e.g. distributing\n+an app that uses tiles from openstreetmap.org) is forbidden without prior\n+permission.\" If you choose to use the OpenStreetMap service for demos or development,\n+you should likely replace the service URLs when your app is shipped to production.\n+\n+The following list of companies provide tile service APIs that may be free or\n+paid and should be compatible with the `px-map-tile-layer` (note that these are\n+not endorsed, but just offered as options):\n+\n+  - [Mapbox](https://www.mapbox.com/help/how-mapbox-data-works/)\n+  - [Carto](https://carto.com/location-data-services/basemaps/)\n+  - [Mapzen](https://mapzen.com/products/maps/)\n+\n+\n+You can also use the `px-map-tile-layer-bing` component to load map tiles from\n+the Bing API, the `<px-map-tile-layer-google>` component to load map tiles from\n+the Google Maps API, or the `<px-map-tile-layer-wms>` component to display WMS\n+services as tile layers on the map.\n+\n+## Example: creating a px-map in your application\n+\n+<iframe height='480' scrolling='no' title='px-map-demo'\n+src='//codepen.io/talimarcus/embed/BYxyNb/?height=265&theme-id=0&default-tab=html,result&embed-version=2'\n+frameborder='no' allowtransparency='true' allowfullscreen='true' style='width: 100%;'></iframe>\n+\n+# Geospatial Data Formats\n+\n+Geospatial data is available in many different formats. This can make it confusing\n+to choose which data format to use in your application. Some formats are open,\n+while others are proprietary to specific vendors. Some formats express data in\n+plain text, while others are encoded and require specific libraries to translate\n+them. One geospatial data format that has gained popularity in recent years is\n+GeoJSON. GeoJSON is a very simple open format that expresses data in plain text\n+and has been adopted by a wide range of vendor and tools. Lots of data sources\n+are available as GeoJSON.\n+\n+Px-map doesn’t prescribe what data format its developers should use, but GeoJSON\n+has many advantages, and there is dedicated support for it within px-map.\n+\n+## Understanding GeoJSON\n+\n+GeoJSON is a JSON-based format used to represent a variety of geographic data\n+structures. You can use GeoJSON to represent geometry (e.g. points, lines, areas),\n+features, or feature collections. GeoJSON is always composed of a single object,\n+and that object must have a member with the name \"type.\" The type refers to the\n+type of GeoJSON object and must be one of: `\"Point\"`, `\"MultiPoint\"`, `\"LineString\"`,\n+`\"MultiLineString\"`, `\"Polygon\"`, `\"MultiPolygon\"`, `\"GeometryCollection\"`,\n+`\"Feature\"`, or `\"FeatureCollection\"`.\n+\n+**Geometry Objects**\n+\n+All Geometry objects (aside from a `\"GeometryCollection\"`) must have a member\n+with the name `\"coordinates\"`, the value of which is an array (or array of arrays)\n+of latitude and longitude coordinates **in `[lng, lat]` order**.\n+- **Point:** A Point is a single point on a map which has no area and is\n+defined by its latitude and longitude coordinates, e.g.:\n+  ```json\n+  {\n+    \"type\": \"Point\",\n+    \"coordinates\": [0, 0]\n+  }\n+  ```\n+- **LineString:** A LineString is a line between two or more points on a map\n+and is defined by an array of two or more latitude and longitude coordinate arrays\n+(positions). A LineString can be self-crossing, and it has no area.\n+  ```json\n+  {\n+    \"type\": \"LineString\",\n+    \"coordinates\": [\n+      [0, 0], [10, 10]\n+    ]\n+  }\n+  ```\n+\n+- **Polygon:** A Polygon represents an area on a map and is defined by an array\n+of four or more positions. Note that the first and last positions MUST be identical, e.g.:\n+  ```json\n+  {\n+    \"type\": \"Polygon\",\n+    \"coordinates\": [\n+      [\n+        [0, 0], [10, 10], [10, 0], [0, 0]\n+      ]\n+    ]\n+  }\n+  ```\n+\n+**Feature Objects**\n+\n+A Feature allows you to describe a Geometry with a set of properties. A Feature\n+object must have the type `\"Feature\"`, as well as `\"geometry\"` and `\"properties\"`\n+members. E.g.:\n+  ```json\n+    {\n+      \"type\": \"Feature\",\n+      \"properties\": {\n+          \"name\": \"M. A. Chidambaram Stadium\",\n+          \"sport\": \"Cricket\",\n+          \"team\": \"Chennai Super Kings\"\n+      },\n+      \"geometry\": {\n+          \"type\": \"Point\",\n+          \"coordinates\": [80.2792802, 13.0628075]\n+      }\n+    }\n+    ```\n+\n+**Feature Collection Objects**\n+\n+A Feature Collection is simply a collection of individual Features. A Feature\n+Collection object must have the type `\"FeatureCollection\"`, as well as member\n+with the name `\"Feature\"` whose value is an array of Feature objects, e.g.:\n+```json\n+{\n+  \"type\": \"FeatureCollection\",\n+  \"features\": [{\n+    \"type\": \"Feature\",\n+    \"properties\": {\n+        \"name\": \"Fenway Park\",\n+        \"sport\": \"Baseball\",\n+        \"team\": \"Boston Red Sox\"\n+    },\n+    \"geometry\": {\n+        \"type\": \"Point\",\n+        \"coordinates\": [-71.09938384, 42.3466789]\n+    }\n+  },\n+  {\n+    \"type\": \"Feature\",\n+    \"properties\": {\n+        \"name\": \"Groupama Stadium\",\n+        \"sport\": \"Football\",\n+        \"team\": \"Olympique Lyonnais\"\n+    },\n+    \"geometry\": {\n+        \"type\": \"Point\",\n+        \"coordinates\": [4.9798403, 45.765295]\n+    }\n+  },\n+  {\n+    \"type\": \"Feature\",\n+    \"properties\": {\n+        \"name\": \"Hillsborough Stadium\",\n+        \"sport\": \"Football\",\n+        \"team\": \"Sheffield Wednesday F.C.\"\n+    },\n+    \"geometry\": {\n+        \"type\": \"Point\",\n+        \"coordinates\": [-1.5006631, 53.4114317]\n+    }\n+  },\n+  {\n+    \"type\": \"Feature\",\n+    \"properties\": {\n+        \"name\": \"Oracle Arena\",\n+        \"sport\": \"Basketball\",\n+        \"team\": \"Golden State Warriors\"\n+    },\n+    \"geometry\": {\n+        \"type\": \"Point\",\n+        \"coordinates\": [-122.2030494, 37.7502917]\n+    }\n+  }]\n+}\n+```\n+See the [GeoJSON spec](http://geojson.org/geojson-spec.html) for more guidance\n+on generating valid GeoJSON, or read more about [the basic concepts behind GeoJSON](https://macwright.org/2015/03/23/geojson-second-bite).\n+\n+# Defining `px-map-marker-group` data\n+\n+The `data` attribute on `px-map-marker-group` expects a GeoJSON feature collection\n+with specific settings configured to draw each marker.\n+\n+## FeatureCollection Format\n+\n+The root JavaScript Object passed to the `data` attribute should be a\n+FeatureCollection object with the following keys/values:\n+\n+- {String} `type`: Must be 'FeatureCollection'\n+- {Array}  `features`: An array of feature objects\n+\n+The feature collection should be formatted like this:\n+    ```json\n+    {\n+      \"type\": \"FeatureCollection\",\n+      \"features\": [...]\n+    }\n+    ```\n+These are required settings. Not including them or mis-formatting them will result\n+in your marker group failing to draw. (An error may be logged to the console with\n+a description of the issue if it is found. Some formatting issues may not be\n+caught and cause a silent failure or an exception to be raised.)\n+\n+## Feature format\n+\n+Each entry in the FeatureCollection features array should be a JavaScript Object\n+formatted as a Feature with the following keys/values:\n+\n+  - {String} `type`: Must be 'Feature'\n+  - {Number} `id`: A unique numeric ID. If the feature is changed, it should keep its ID. No other features in the collection should have the same ID.\n+  - {Object} `geometry`\n+  - {String} `geometry.type`: Must be 'Point'\n+  - {Array}  `geometry.coordinates`: a pair of coordinates in `[lng,lat]` order\n+  - {Object} `properties`\n+  - {Object} `properties.marker-icon`: Settings to configure a marker icon\n+  - {Object} `properties.marker-popup`: [OPTIONAL] Settings to configure a marker popup\n+\n+For example, here is a feature that is drawn with a \"static\" marker icon (from `px-map-marker-static`):\n+\n+    ```json\n+    {\n+      \"type\": \"Feature\",\n+      \"id\": 748082,\n+      \"geometry\": {\n+        \"type\": \"Point\",\n+        \"coordinates\": [-117.273809,32.840128]\n+      },\n+      \"properties\": {\n+        \"marker-icon\": {\n+          \"icon-base\": \"static-icon\",\n+          \"icon-type\": \"info\"\n+        }\n+      }\n+    }\n+    ```\n+\n+## Defining the marker icon\n+\n+The `properties.marker-icon` object should describe the type of marker\n+icon that should be drawn and the settings for that marker icon.\n+\n+Define the marker icon base using the `properties.marker-icon.icon-base` property.\n+Choose from any of the built-in markers provided with `px-map`:\n+\n+- 'static-icon'\n+- 'symbol-icon'\n+\n+To configure the icon, pass additional settings in the format\n+`properties.marker-icon.icon-[SETTING]` in dash case. For example,\n+this would configure the feature to use a \"symbol\" marker icon\n+with a briefcase symbol and the warning color:\n+\n+    ```json","path":"_pages/develop/map.md","position":418,"original_position":418,"commit_id":"d6d6507893bb18ed260c1d8ecc467fc3907c3c0e","original_commit_id":"d6d6507893bb18ed260c1d8ecc467fc3907c3c0e","user":{"login":"randyaskin","id":2130613,"avatar_url":"https://avatars2.githubusercontent.com/u/2130613?v=4","gravatar_id":"","url":"https://api.github.com/users/randyaskin","html_url":"https://github.com/randyaskin","followers_url":"https://api.github.com/users/randyaskin/followers","following_url":"https://api.github.com/users/randyaskin/following{/other_user}","gists_url":"https://api.github.com/users/randyaskin/gists{/gist_id}","starred_url":"https://api.github.com/users/randyaskin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randyaskin/subscriptions","organizations_url":"https://api.github.com/users/randyaskin/orgs","repos_url":"https://api.github.com/users/randyaskin/repos","events_url":"https://api.github.com/users/randyaskin/events{/privacy}","received_events_url":"https://api.github.com/users/randyaskin/received_events","type":"User","site_admin":false},"body":"Same as above, code block not formatting.","created_at":"2018-03-01T20:26:44Z","updated_at":"2018-03-01T20:46:44Z","html_url":"https://github.com/predix-ui/predix-ui.github.io/pull/329#discussion_r171683777","pull_request_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/comments/171683777"},"html":{"href":"https://github.com/predix-ui/predix-ui.github.io/pull/329#discussion_r171683777"},"pull_request":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329"}}},"pull_request":{"url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329","id":171153252,"html_url":"https://github.com/predix-ui/predix-ui.github.io/pull/329","diff_url":"https://github.com/predix-ui/predix-ui.github.io/pull/329.diff","patch_url":"https://github.com/predix-ui/predix-ui.github.io/pull/329.patch","issue_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/329","number":329,"state":"open","locked":false,"title":"[WIP DON'T MERGE] Map developer guide","user":{"login":"talimarcus","id":9092541,"avatar_url":"https://avatars1.githubusercontent.com/u/9092541?v=4","gravatar_id":"","url":"https://api.github.com/users/talimarcus","html_url":"https://github.com/talimarcus","followers_url":"https://api.github.com/users/talimarcus/followers","following_url":"https://api.github.com/users/talimarcus/following{/other_user}","gists_url":"https://api.github.com/users/talimarcus/gists{/gist_id}","starred_url":"https://api.github.com/users/talimarcus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/talimarcus/subscriptions","organizations_url":"https://api.github.com/users/talimarcus/orgs","repos_url":"https://api.github.com/users/talimarcus/repos","events_url":"https://api.github.com/users/talimarcus/events{/privacy}","received_events_url":"https://api.github.com/users/talimarcus/received_events","type":"User","site_admin":false},"body":"NOT READY to be merged in yet -- creating a PR so the UK team can take a look at what we've got so far.","created_at":"2018-02-24T01:40:48Z","updated_at":"2018-03-01T20:46:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4325f6b07f988e2227d7df1df95837edf59a4296","assignee":null,"assignees":[],"requested_reviewers":[{"login":"davidrleonard","id":6456757,"avatar_url":"https://avatars3.githubusercontent.com/u/6456757?v=4","gravatar_id":"","url":"https://api.github.com/users/davidrleonard","html_url":"https://github.com/davidrleonard","followers_url":"https://api.github.com/users/davidrleonard/followers","following_url":"https://api.github.com/users/davidrleonard/following{/other_user}","gists_url":"https://api.github.com/users/davidrleonard/gists{/gist_id}","starred_url":"https://api.github.com/users/davidrleonard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidrleonard/subscriptions","organizations_url":"https://api.github.com/users/davidrleonard/orgs","repos_url":"https://api.github.com/users/davidrleonard/repos","events_url":"https://api.github.com/users/davidrleonard/events{/privacy}","received_events_url":"https://api.github.com/users/davidrleonard/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329/commits","review_comments_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329/comments","review_comment_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/329/comments","statuses_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/statuses/d6d6507893bb18ed260c1d8ecc467fc3907c3c0e","head":{"label":"predix-ui:map-guide","ref":"map-guide","sha":"d6d6507893bb18ed260c1d8ecc467fc3907c3c0e","user":{"login":"predix-ui","id":17791885,"avatar_url":"https://avatars2.githubusercontent.com/u/17791885?v=4","gravatar_id":"","url":"https://api.github.com/users/predix-ui","html_url":"https://github.com/predix-ui","followers_url":"https://api.github.com/users/predix-ui/followers","following_url":"https://api.github.com/users/predix-ui/following{/other_user}","gists_url":"https://api.github.com/users/predix-ui/gists{/gist_id}","starred_url":"https://api.github.com/users/predix-ui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/predix-ui/subscriptions","organizations_url":"https://api.github.com/users/predix-ui/orgs","repos_url":"https://api.github.com/users/predix-ui/repos","events_url":"https://api.github.com/users/predix-ui/events{/privacy}","received_events_url":"https://api.github.com/users/predix-ui/received_events","type":"Organization","site_admin":false},"repo":{"id":53085244,"name":"predix-ui.github.io","full_name":"predix-ui/predix-ui.github.io","owner":{"login":"predix-ui","id":17791885,"avatar_url":"https://avatars2.githubusercontent.com/u/17791885?v=4","gravatar_id":"","url":"https://api.github.com/users/predix-ui","html_url":"https://github.com/predix-ui","followers_url":"https://api.github.com/users/predix-ui/followers","following_url":"https://api.github.com/users/predix-ui/following{/other_user}","gists_url":"https://api.github.com/users/predix-ui/gists{/gist_id}","starred_url":"https://api.github.com/users/predix-ui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/predix-ui/subscriptions","organizations_url":"https://api.github.com/users/predix-ui/orgs","repos_url":"https://api.github.com/users/predix-ui/repos","events_url":"https://api.github.com/users/predix-ui/events{/privacy}","received_events_url":"https://api.github.com/users/predix-ui/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/predix-ui/predix-ui.github.io","description":null,"fork":false,"url":"https://api.github.com/repos/predix-ui/predix-ui.github.io","forks_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/forks","keys_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/teams","hooks_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/hooks","issue_events_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/events","assignees_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/tags","blobs_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/languages","stargazers_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/stargazers","contributors_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/contributors","subscribers_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/subscribers","subscription_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/subscription","commits_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/merges","archive_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/downloads","issues_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/labels{/name}","releases_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/deployments","created_at":"2016-03-03T21:25:38Z","updated_at":"2018-02-16T06:32:50Z","pushed_at":"2018-02-28T22:37:10Z","git_url":"git://github.com/predix-ui/predix-ui.github.io.git","ssh_url":"git@github.com:predix-ui/predix-ui.github.io.git","clone_url":"https://github.com/predix-ui/predix-ui.github.io.git","svn_url":"https://github.com/predix-ui/predix-ui.github.io","homepage":"http://predixdev.github.io/predix-ui","size":108265,"stargazers_count":12,"watchers_count":12,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":36,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":10,"open_issues":36,"watchers":12,"default_branch":"source"}},"base":{"label":"predix-ui:source","ref":"source","sha":"18a0a2028e18051f0a0aff35a34e3179dc85f17d","user":{"login":"predix-ui","id":17791885,"avatar_url":"https://avatars2.githubusercontent.com/u/17791885?v=4","gravatar_id":"","url":"https://api.github.com/users/predix-ui","html_url":"https://github.com/predix-ui","followers_url":"https://api.github.com/users/predix-ui/followers","following_url":"https://api.github.com/users/predix-ui/following{/other_user}","gists_url":"https://api.github.com/users/predix-ui/gists{/gist_id}","starred_url":"https://api.github.com/users/predix-ui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/predix-ui/subscriptions","organizations_url":"https://api.github.com/users/predix-ui/orgs","repos_url":"https://api.github.com/users/predix-ui/repos","events_url":"https://api.github.com/users/predix-ui/events{/privacy}","received_events_url":"https://api.github.com/users/predix-ui/received_events","type":"Organization","site_admin":false},"repo":{"id":53085244,"name":"predix-ui.github.io","full_name":"predix-ui/predix-ui.github.io","owner":{"login":"predix-ui","id":17791885,"avatar_url":"https://avatars2.githubusercontent.com/u/17791885?v=4","gravatar_id":"","url":"https://api.github.com/users/predix-ui","html_url":"https://github.com/predix-ui","followers_url":"https://api.github.com/users/predix-ui/followers","following_url":"https://api.github.com/users/predix-ui/following{/other_user}","gists_url":"https://api.github.com/users/predix-ui/gists{/gist_id}","starred_url":"https://api.github.com/users/predix-ui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/predix-ui/subscriptions","organizations_url":"https://api.github.com/users/predix-ui/orgs","repos_url":"https://api.github.com/users/predix-ui/repos","events_url":"https://api.github.com/users/predix-ui/events{/privacy}","received_events_url":"https://api.github.com/users/predix-ui/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/predix-ui/predix-ui.github.io","description":null,"fork":false,"url":"https://api.github.com/repos/predix-ui/predix-ui.github.io","forks_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/forks","keys_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/teams","hooks_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/hooks","issue_events_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/events","assignees_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/tags","blobs_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/languages","stargazers_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/stargazers","contributors_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/contributors","subscribers_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/subscribers","subscription_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/subscription","commits_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/merges","archive_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/downloads","issues_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/labels{/name}","releases_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/predix-ui/predix-ui.github.io/deployments","created_at":"2016-03-03T21:25:38Z","updated_at":"2018-02-16T06:32:50Z","pushed_at":"2018-02-28T22:37:10Z","git_url":"git://github.com/predix-ui/predix-ui.github.io.git","ssh_url":"git@github.com:predix-ui/predix-ui.github.io.git","clone_url":"https://github.com/predix-ui/predix-ui.github.io.git","svn_url":"https://github.com/predix-ui/predix-ui.github.io","homepage":"http://predixdev.github.io/predix-ui","size":108265,"stargazers_count":12,"watchers_count":12,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":36,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":10,"open_issues":36,"watchers":12,"default_branch":"source"}},"_links":{"self":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329"},"html":{"href":"https://github.com/predix-ui/predix-ui.github.io/pull/329"},"issue":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/329"},"comments":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/issues/329/comments"},"review_comments":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329/comments"},"review_comment":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/pulls/329/commits"},"statuses":{"href":"https://api.github.com/repos/predix-ui/predix-ui.github.io/statuses/d6d6507893bb18ed260c1d8ecc467fc3907c3c0e"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"randyaskin"}}