{"action":"opened","issue":{"url":"https://api.github.com/repos/iTowns/itowns2/issues/43","repository_url":"https://api.github.com/repos/iTowns/itowns2","labels_url":"https://api.github.com/repos/iTowns/itowns2/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/iTowns/itowns2/issues/43/comments","events_url":"https://api.github.com/repos/iTowns/itowns2/issues/43/events","html_url":"https://github.com/iTowns/itowns2/issues/43","id":134122485,"number":43,"title":"Support for multiple provider","user":{"login":"Jeremy-Gaillard","id":1814191,"avatar_url":"https://avatars.githubusercontent.com/u/1814191?v=3","gravatar_id":"","url":"https://api.github.com/users/Jeremy-Gaillard","html_url":"https://github.com/Jeremy-Gaillard","followers_url":"https://api.github.com/users/Jeremy-Gaillard/followers","following_url":"https://api.github.com/users/Jeremy-Gaillard/following{/other_user}","gists_url":"https://api.github.com/users/Jeremy-Gaillard/gists{/gist_id}","starred_url":"https://api.github.com/users/Jeremy-Gaillard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jeremy-Gaillard/subscriptions","organizations_url":"https://api.github.com/users/Jeremy-Gaillard/orgs","repos_url":"https://api.github.com/users/Jeremy-Gaillard/repos","events_url":"https://api.github.com/users/Jeremy-Gaillard/events{/privacy}","received_events_url":"https://api.github.com/users/Jeremy-Gaillard/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-02-16T23:07:53Z","updated_at":"2016-02-16T23:07:53Z","closed_at":null,"body":"I am currently stuck in the development of my application because of the lack of support for multiple providers (in my case, terrain + 3D buildings).\r\nI propose an overhaul of the provider/commander code. The goal is to take out of the manager and interface commander all mention of a specific data type or provider in order to facilitate the integration of new providers.\r\n\r\nI am willing to take care of the issue myself. These are the tasks I have in mind:\r\n- Build the provider outside of the manager\r\n- Unique get() function in the InterfaceCommander. Replace parameter array by parameter object (more flexible)\r\n- Providers and the provided data types should be bound (i.e. each Provider has a _type_ attribute which stores the provided data type)\r\n- (Slight) rework of the command class: store the function or the provider to call instead of the data type (which is already contained in the provider)\r\n- Add provider to quadtree\r\n\r\nAny objections or comments ?\r\n\r\nWarning: this will break most of the branches. Better now than later.\r\n\r\nNB: the same sort of work should be done for the nodeProcess/browseTree classes in my opinion"}}