{"action":"created","issue":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/2725","repository_url":"https://api.github.com/repos/mapbox/mapbox-gl-js","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/2725/labels{/name}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/2725/comments","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/2725/events","html_url":"https://github.com/mapbox/mapbox-gl-js/pull/2725","id":159958429,"number":2725,"title":"Add an Overlay class","user":{"login":"mourner","id":25395,"avatar_url":"https://avatars.githubusercontent.com/u/25395?v=3","gravatar_id":"","url":"https://api.github.com/users/mourner","html_url":"https://github.com/mourner","followers_url":"https://api.github.com/users/mourner/followers","following_url":"https://api.github.com/users/mourner/following{/other_user}","gists_url":"https://api.github.com/users/mourner/gists{/gist_id}","starred_url":"https://api.github.com/users/mourner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mourner/subscriptions","organizations_url":"https://api.github.com/users/mourner/orgs","repos_url":"https://api.github.com/users/mourner/repos","events_url":"https://api.github.com/users/mourner/events{/privacy}","received_events_url":"https://api.github.com/users/mourner/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-06-13T14:06:33Z","updated_at":"2016-06-13T20:43:01Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/2725","html_url":"https://github.com/mapbox/mapbox-gl-js/pull/2725","diff_url":"https://github.com/mapbox/mapbox-gl-js/pull/2725.diff","patch_url":"https://github.com/mapbox/mapbox-gl-js/pull/2725.patch"},"body":"Closes #656 by introducing a simple Overlay class for marker-like functionality.\n\n- Initially I made Overlay a base class Popup inherits from, but this turned out to be not worth it — complicating the code a lot while they share almost nothing.\n- Overlays lag behind a little on panning animations like keyboard pan and inertia, but I haven’t yet found a source of the issue. Panning manually is fine.\n- I eliminated one of the bottlenecks with #2690, but performance is still bottlenecked by browsers setting CSS transforms on each element. ~200 markers work fine on my machine, but 500 have a noticeable lag on a full-screen map.\n\ncc @lucaswoj @tristen @jfirebaugh "},"comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/comments/225702233","html_url":"https://github.com/mapbox/mapbox-gl-js/pull/2725#issuecomment-225702233","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-js/issues/2725","id":225702233,"user":{"login":"mourner","id":25395,"avatar_url":"https://avatars.githubusercontent.com/u/25395?v=3","gravatar_id":"","url":"https://api.github.com/users/mourner","html_url":"https://github.com/mourner","followers_url":"https://api.github.com/users/mourner/followers","following_url":"https://api.github.com/users/mourner/following{/other_user}","gists_url":"https://api.github.com/users/mourner/gists{/gist_id}","starred_url":"https://api.github.com/users/mourner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mourner/subscriptions","organizations_url":"https://api.github.com/users/mourner/orgs","repos_url":"https://api.github.com/users/mourner/repos","events_url":"https://api.github.com/users/mourner/events{/privacy}","received_events_url":"https://api.github.com/users/mourner/received_events","type":"User","site_admin":false},"created_at":"2016-06-13T20:43:01Z","updated_at":"2016-06-13T20:43:01Z","body":"> Would performance improve if we put all overlays into a single container and apply the transforms to that container?\r\n\r\nTechnically not possible, since we need to keep overlays unscaled while they inherit any scale set on the parent.\r\n\r\nRegarding the API — I prefer factories like `mapboxgl.overlay()` for the API, but in any case, I would break the API in a separate PR push that affects everything, and keep this PR adhere to existing API conventions so that it remains focused."}}
{"actor":{"display_login":"mourner"}}