Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. import { create as createMarker } from "../lib/marker";
  2.  
  3.  
  4. export default class Map extends Component {
  5.  
  6. constructor() {
  7. super(...arguments);
  8. this.markers = {};
  9. }
  10.  
  11. componentWillReceiveProps(nextProps) {
  12. this.upsertMarker("car", nextProps["car"]);
  13. this.upsertMarker("pickup", nextProps["pickup"]);
  14. this.upsertMarker("dropoff", nextProps["dropoff"]);
  15. this.upsertMarker("extrastop", nextProps["extrastop"]);
  16. }
  17.  
  18. upsertMarker(type, data) {
  19.  
  20. if (data) {
  21.  
  22. // Если данные – нужно показать маркер
  23.  
  24. if (!this.markers[type]) {
  25.  
  26. // Еще нет маркера на карте – создем его
  27. this.markers[type] = createMarker(type, data);
  28. this.markers[type].attach(map);
  29.  
  30. } else {
  31.  
  32. // Уже есть маркер на карте – обновляем его
  33. this.markers[type].setProps(data);
  34.  
  35. }
  36.  
  37. } else {
  38.  
  39. // Данных нет, убираем его с карты и удаляем
  40.  
  41. this.markers[type].detach();
  42. delete this.markers[type];
  43.  
  44. }
  45.  
  46. }
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement