{"action":"created","comment":{"url":"https://api.github.com/repos/uber/nebula.gl/pulls/comments/208433989","pull_request_review_id":144241966,"id":208433989,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwODQzMzk4OQ==","diff_hunk":"@@ -354,3 +354,29 @@ The pointer moved, regardless of whether the pointer is down, up, and whether or\n * `groundCoords` (Array): `[lng, lat]` ground coordinates where the pointer is now.\n * `isDragging` (Boolean): `true` if the pointer is moving but it is considered a drag, in this case you likely want to handle `onDragging`\n * `pointerDownPicks` (Array): An array containing [deck.gl Picking Info Objects](https://uber.github.io/deck.gl/#/documentation/developer-guide/adding-interactivity?section=what-can-be-picked-) for all objects that were under the pointer when it went down, or `null` if pointer is moving without pointer down.\n+\n+\n+## Define Sublayers\n+\n+Three default sublayers make up the composite `EditableGeoJsonLayer`:\n+\n+1. `GeometryLayer` renders the geometries. Default: `GeoJsonLayer`\n+2. `PointHandleLayer` renders the point edit handles. Default: `ScatterplotLayer`\n+3. `IconHandleLayer` renders the icon edit handles. Default `IconLayer`\n+\n+All three sublayer defaults can be overridden with custom or experimental layers. Define an object prop that contains the `Layer` class object, an `id` and any addtional `props`. For instance:\n+\n+```\n+PointHandleLayer: {\n+  Layer: OutlinedScatterplotLayer,\n+  id: 'outlined',\n+  props: {\n+    innerRadius: 5,\n+    fillColor: [0x20, 0x40, 0x90, 0xc0],\n+    strokeColor: [0x0, 0x0, 0x0, 0x80]","path":"docs/api-reference/layers/editable-geojson-layer.md","position":23,"original_position":23,"commit_id":"bcd1a04e939ce1e3b410bc4a8cd91e17778a318d","original_commit_id":"bcd1a04e939ce1e3b410bc4a8cd91e17778a318d","user":{"login":"georgios-uber","id":25012840,"node_id":"MDQ6VXNlcjI1MDEyODQw","avatar_url":"https://avatars2.githubusercontent.com/u/25012840?v=4","gravatar_id":"","url":"https://api.github.com/users/georgios-uber","html_url":"https://github.com/georgios-uber","followers_url":"https://api.github.com/users/georgios-uber/followers","following_url":"https://api.github.com/users/georgios-uber/following{/other_user}","gists_url":"https://api.github.com/users/georgios-uber/gists{/gist_id}","starred_url":"https://api.github.com/users/georgios-uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgios-uber/subscriptions","organizations_url":"https://api.github.com/users/georgios-uber/orgs","repos_url":"https://api.github.com/users/georgios-uber/repos","events_url":"https://api.github.com/users/georgios-uber/events{/privacy}","received_events_url":"https://api.github.com/users/georgios-uber/received_events","type":"User","site_admin":false},"body":"I think previously we discussed that we want more advanced ways to pass attributes.\r\nLike, how can I define the `fillColor` based on the current feature?\r\n\r\n@supersonicclay What do you think?","created_at":"2018-08-08T01:41:53Z","updated_at":"2018-08-08T01:42:09Z","html_url":"https://github.com/uber/nebula.gl/pull/46#discussion_r208433989","pull_request_url":"https://api.github.com/repos/uber/nebula.gl/pulls/46","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/uber/nebula.gl/pulls/comments/208433989"},"html":{"href":"https://github.com/uber/nebula.gl/pull/46#discussion_r208433989"},"pull_request":{"href":"https://api.github.com/repos/uber/nebula.gl/pulls/46"}}},"pull_request":{"url":"https://api.github.com/repos/uber/nebula.gl/pulls/46","id":206757861,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2NzU3ODYx","html_url":"https://github.com/uber/nebula.gl/pull/46","diff_url":"https://github.com/uber/nebula.gl/pull/46.diff","patch_url":"https://github.com/uber/nebula.gl/pull/46.patch","issue_url":"https://api.github.com/repos/uber/nebula.gl/issues/46","number":46,"state":"open","locked":false,"title":"Configure sublayers and their props","user":{"login":"matthrice","id":15949651,"node_id":"MDQ6VXNlcjE1OTQ5NjUx","avatar_url":"https://avatars1.githubusercontent.com/u/15949651?v=4","gravatar_id":"","url":"https://api.github.com/users/matthrice","html_url":"https://github.com/matthrice","followers_url":"https://api.github.com/users/matthrice/followers","following_url":"https://api.github.com/users/matthrice/following{/other_user}","gists_url":"https://api.github.com/users/matthrice/gists{/gist_id}","starred_url":"https://api.github.com/users/matthrice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthrice/subscriptions","organizations_url":"https://api.github.com/users/matthrice/orgs","repos_url":"https://api.github.com/users/matthrice/repos","events_url":"https://api.github.com/users/matthrice/events{/privacy}","received_events_url":"https://api.github.com/users/matthrice/received_events","type":"User","site_admin":false},"body":"Allow users to override default sublayers with custom/experimental layers and define additional props. \r\n\r\n```\r\nPointHandleLayer: {\r\n  Layer: OutlinedScatterplotLayer,\r\n  id: 'outlined',\r\n  props: {\r\n    innerRadius: 5,\r\n    fillColor: [0x20, 0x40, 0x90, 0xc0],\r\n    strokeColor: [0x0, 0x0, 0x0, 0x80]\r\n  }\r\n}\r\n```\r\n\r\nUpdated example to show two custom layers as edit handles. `JunctionScatterplotLayer` renders points with stroke and fill, and `WorldIconLayer` renders icons with a world orientation.","created_at":"2018-08-07T16:33:37Z","updated_at":"2018-08-08T01:42:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2c42e94b42af7f1c38131af7e47f47b9cf44d9fc","assignee":null,"assignees":[],"requested_reviewers":[{"login":"supersonicclay","id":469582,"node_id":"MDQ6VXNlcjQ2OTU4Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/469582?v=4","gravatar_id":"","url":"https://api.github.com/users/supersonicclay","html_url":"https://github.com/supersonicclay","followers_url":"https://api.github.com/users/supersonicclay/followers","following_url":"https://api.github.com/users/supersonicclay/following{/other_user}","gists_url":"https://api.github.com/users/supersonicclay/gists{/gist_id}","starred_url":"https://api.github.com/users/supersonicclay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/supersonicclay/subscriptions","organizations_url":"https://api.github.com/users/supersonicclay/orgs","repos_url":"https://api.github.com/users/supersonicclay/repos","events_url":"https://api.github.com/users/supersonicclay/events{/privacy}","received_events_url":"https://api.github.com/users/supersonicclay/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/uber/nebula.gl/pulls/46/commits","review_comments_url":"https://api.github.com/repos/uber/nebula.gl/pulls/46/comments","review_comment_url":"https://api.github.com/repos/uber/nebula.gl/pulls/comments{/number}","comments_url":"https://api.github.com/repos/uber/nebula.gl/issues/46/comments","statuses_url":"https://api.github.com/repos/uber/nebula.gl/statuses/bcd1a04e939ce1e3b410bc4a8cd91e17778a318d","head":{"label":"matthrice:configure-layers","ref":"configure-layers","sha":"bcd1a04e939ce1e3b410bc4a8cd91e17778a318d","user":{"login":"matthrice","id":15949651,"node_id":"MDQ6VXNlcjE1OTQ5NjUx","avatar_url":"https://avatars1.githubusercontent.com/u/15949651?v=4","gravatar_id":"","url":"https://api.github.com/users/matthrice","html_url":"https://github.com/matthrice","followers_url":"https://api.github.com/users/matthrice/followers","following_url":"https://api.github.com/users/matthrice/following{/other_user}","gists_url":"https://api.github.com/users/matthrice/gists{/gist_id}","starred_url":"https://api.github.com/users/matthrice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthrice/subscriptions","organizations_url":"https://api.github.com/users/matthrice/orgs","repos_url":"https://api.github.com/users/matthrice/repos","events_url":"https://api.github.com/users/matthrice/events{/privacy}","received_events_url":"https://api.github.com/users/matthrice/received_events","type":"User","site_admin":false},"repo":{"id":143878936,"node_id":"MDEwOlJlcG9zaXRvcnkxNDM4Nzg5MzY=","name":"nebula.gl","full_name":"matthrice/nebula.gl","owner":{"login":"matthrice","id":15949651,"node_id":"MDQ6VXNlcjE1OTQ5NjUx","avatar_url":"https://avatars1.githubusercontent.com/u/15949651?v=4","gravatar_id":"","url":"https://api.github.com/users/matthrice","html_url":"https://github.com/matthrice","followers_url":"https://api.github.com/users/matthrice/followers","following_url":"https://api.github.com/users/matthrice/following{/other_user}","gists_url":"https://api.github.com/users/matthrice/gists{/gist_id}","starred_url":"https://api.github.com/users/matthrice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthrice/subscriptions","organizations_url":"https://api.github.com/users/matthrice/orgs","repos_url":"https://api.github.com/users/matthrice/repos","events_url":"https://api.github.com/users/matthrice/events{/privacy}","received_events_url":"https://api.github.com/users/matthrice/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/matthrice/nebula.gl","description":"A suite of 3D-enabled data editing overlays, suitable for deck.gl","fork":true,"url":"https://api.github.com/repos/matthrice/nebula.gl","forks_url":"https://api.github.com/repos/matthrice/nebula.gl/forks","keys_url":"https://api.github.com/repos/matthrice/nebula.gl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/matthrice/nebula.gl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/matthrice/nebula.gl/teams","hooks_url":"https://api.github.com/repos/matthrice/nebula.gl/hooks","issue_events_url":"https://api.github.com/repos/matthrice/nebula.gl/issues/events{/number}","events_url":"https://api.github.com/repos/matthrice/nebula.gl/events","assignees_url":"https://api.github.com/repos/matthrice/nebula.gl/assignees{/user}","branches_url":"https://api.github.com/repos/matthrice/nebula.gl/branches{/branch}","tags_url":"https://api.github.com/repos/matthrice/nebula.gl/tags","blobs_url":"https://api.github.com/repos/matthrice/nebula.gl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/matthrice/nebula.gl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/matthrice/nebula.gl/git/refs{/sha}","trees_url":"https://api.github.com/repos/matthrice/nebula.gl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/matthrice/nebula.gl/statuses/{sha}","languages_url":"https://api.github.com/repos/matthrice/nebula.gl/languages","stargazers_url":"https://api.github.com/repos/matthrice/nebula.gl/stargazers","contributors_url":"https://api.github.com/repos/matthrice/nebula.gl/contributors","subscribers_url":"https://api.github.com/repos/matthrice/nebula.gl/subscribers","subscription_url":"https://api.github.com/repos/matthrice/nebula.gl/subscription","commits_url":"https://api.github.com/repos/matthrice/nebula.gl/commits{/sha}","git_commits_url":"https://api.github.com/repos/matthrice/nebula.gl/git/commits{/sha}","comments_url":"https://api.github.com/repos/matthrice/nebula.gl/comments{/number}","issue_comment_url":"https://api.github.com/repos/matthrice/nebula.gl/issues/comments{/number}","contents_url":"https://api.github.com/repos/matthrice/nebula.gl/contents/{+path}","compare_url":"https://api.github.com/repos/matthrice/nebula.gl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/matthrice/nebula.gl/merges","archive_url":"https://api.github.com/repos/matthrice/nebula.gl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/matthrice/nebula.gl/downloads","issues_url":"https://api.github.com/repos/matthrice/nebula.gl/issues{/number}","pulls_url":"https://api.github.com/repos/matthrice/nebula.gl/pulls{/number}","milestones_url":"https://api.github.com/repos/matthrice/nebula.gl/milestones{/number}","notifications_url":"https://api.github.com/repos/matthrice/nebula.gl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/matthrice/nebula.gl/labels{/name}","releases_url":"https://api.github.com/repos/matthrice/nebula.gl/releases{/id}","deployments_url":"https://api.github.com/repos/matthrice/nebula.gl/deployments","created_at":"2018-08-07T13:42:24Z","updated_at":"2018-08-07T13:42:26Z","pushed_at":"2018-08-07T15:26:24Z","git_url":"git://github.com/matthrice/nebula.gl.git","ssh_url":"git@github.com:matthrice/nebula.gl.git","clone_url":"https://github.com/matthrice/nebula.gl.git","svn_url":"https://github.com/matthrice/nebula.gl","homepage":"http://neb.gl/","size":3068,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"uber:master","ref":"master","sha":"30fc4427b633fd3891eac701a4e6da11012dd386","user":{"login":"uber","id":538264,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUzODI2NA==","avatar_url":"https://avatars3.githubusercontent.com/u/538264?v=4","gravatar_id":"","url":"https://api.github.com/users/uber","html_url":"https://github.com/uber","followers_url":"https://api.github.com/users/uber/followers","following_url":"https://api.github.com/users/uber/following{/other_user}","gists_url":"https://api.github.com/users/uber/gists{/gist_id}","starred_url":"https://api.github.com/users/uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber/subscriptions","organizations_url":"https://api.github.com/users/uber/orgs","repos_url":"https://api.github.com/users/uber/repos","events_url":"https://api.github.com/users/uber/events{/privacy}","received_events_url":"https://api.github.com/users/uber/received_events","type":"Organization","site_admin":false},"repo":{"id":121664013,"node_id":"MDEwOlJlcG9zaXRvcnkxMjE2NjQwMTM=","name":"nebula.gl","full_name":"uber/nebula.gl","owner":{"login":"uber","id":538264,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUzODI2NA==","avatar_url":"https://avatars3.githubusercontent.com/u/538264?v=4","gravatar_id":"","url":"https://api.github.com/users/uber","html_url":"https://github.com/uber","followers_url":"https://api.github.com/users/uber/followers","following_url":"https://api.github.com/users/uber/following{/other_user}","gists_url":"https://api.github.com/users/uber/gists{/gist_id}","starred_url":"https://api.github.com/users/uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber/subscriptions","organizations_url":"https://api.github.com/users/uber/orgs","repos_url":"https://api.github.com/users/uber/repos","events_url":"https://api.github.com/users/uber/events{/privacy}","received_events_url":"https://api.github.com/users/uber/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uber/nebula.gl","description":"A suite of 3D-enabled data editing overlays, suitable for deck.gl","fork":false,"url":"https://api.github.com/repos/uber/nebula.gl","forks_url":"https://api.github.com/repos/uber/nebula.gl/forks","keys_url":"https://api.github.com/repos/uber/nebula.gl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uber/nebula.gl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uber/nebula.gl/teams","hooks_url":"https://api.github.com/repos/uber/nebula.gl/hooks","issue_events_url":"https://api.github.com/repos/uber/nebula.gl/issues/events{/number}","events_url":"https://api.github.com/repos/uber/nebula.gl/events","assignees_url":"https://api.github.com/repos/uber/nebula.gl/assignees{/user}","branches_url":"https://api.github.com/repos/uber/nebula.gl/branches{/branch}","tags_url":"https://api.github.com/repos/uber/nebula.gl/tags","blobs_url":"https://api.github.com/repos/uber/nebula.gl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uber/nebula.gl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uber/nebula.gl/git/refs{/sha}","trees_url":"https://api.github.com/repos/uber/nebula.gl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uber/nebula.gl/statuses/{sha}","languages_url":"https://api.github.com/repos/uber/nebula.gl/languages","stargazers_url":"https://api.github.com/repos/uber/nebula.gl/stargazers","contributors_url":"https://api.github.com/repos/uber/nebula.gl/contributors","subscribers_url":"https://api.github.com/repos/uber/nebula.gl/subscribers","subscription_url":"https://api.github.com/repos/uber/nebula.gl/subscription","commits_url":"https://api.github.com/repos/uber/nebula.gl/commits{/sha}","git_commits_url":"https://api.github.com/repos/uber/nebula.gl/git/commits{/sha}","comments_url":"https://api.github.com/repos/uber/nebula.gl/comments{/number}","issue_comment_url":"https://api.github.com/repos/uber/nebula.gl/issues/comments{/number}","contents_url":"https://api.github.com/repos/uber/nebula.gl/contents/{+path}","compare_url":"https://api.github.com/repos/uber/nebula.gl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uber/nebula.gl/merges","archive_url":"https://api.github.com/repos/uber/nebula.gl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uber/nebula.gl/downloads","issues_url":"https://api.github.com/repos/uber/nebula.gl/issues{/number}","pulls_url":"https://api.github.com/repos/uber/nebula.gl/pulls{/number}","milestones_url":"https://api.github.com/repos/uber/nebula.gl/milestones{/number}","notifications_url":"https://api.github.com/repos/uber/nebula.gl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uber/nebula.gl/labels{/name}","releases_url":"https://api.github.com/repos/uber/nebula.gl/releases{/id}","deployments_url":"https://api.github.com/repos/uber/nebula.gl/deployments","created_at":"2018-02-15T18:15:02Z","updated_at":"2018-08-03T17:29:11Z","pushed_at":"2018-08-07T16:33:38Z","git_url":"git://github.com/uber/nebula.gl.git","ssh_url":"git@github.com:uber/nebula.gl.git","clone_url":"https://github.com/uber/nebula.gl.git","svn_url":"https://github.com/uber/nebula.gl","homepage":"http://neb.gl/","size":3059,"stargazers_count":27,"watchers_count":27,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":13,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":5,"open_issues":13,"watchers":27,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/uber/nebula.gl/pulls/46"},"html":{"href":"https://github.com/uber/nebula.gl/pull/46"},"issue":{"href":"https://api.github.com/repos/uber/nebula.gl/issues/46"},"comments":{"href":"https://api.github.com/repos/uber/nebula.gl/issues/46/comments"},"review_comments":{"href":"https://api.github.com/repos/uber/nebula.gl/pulls/46/comments"},"review_comment":{"href":"https://api.github.com/repos/uber/nebula.gl/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/uber/nebula.gl/pulls/46/commits"},"statuses":{"href":"https://api.github.com/repos/uber/nebula.gl/statuses/bcd1a04e939ce1e3b410bc4a8cd91e17778a318d"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"georgios-uber"}}