Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
1,380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. ymaps.ready(function () {
  2. var myMap = new ymaps.Map('map', {
  3. center: [*координаты*],
  4. zoom: 9,
  5. behaviors: ['default', 'scrollZoom']
  6. }, {
  7. searchControlProvider: 'yandex#search'
  8. }),
  9. /**
  10. * Создадим кластеризатор, вызвав функцию-конструктор.
  11. * Список всех опций доступен в документации.
  12. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#constructor-summary
  13. */
  14. clusterer = new ymaps.Clusterer({
  15. /**
  16. * Через кластеризатор можно указать только стили кластеров,
  17. * стили для меток нужно назначать каждой метке отдельно.
  18. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/option.presetStorage.xml
  19. */
  20. preset: 'islands#invertedVioletClusterIcons',
  21. /**
  22. * Ставим true, если хотим кластеризовать только точки с одинаковыми координатами.
  23. */
  24. groupByCoordinates: false,
  25. /**
  26. * Опции кластеров указываем в кластеризаторе с префиксом "cluster".
  27. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark.xml
  28. */
  29. clusterHideIconOnBalloonOpen: false,
  30. geoObjectHideIconOnBalloonOpen: false
  31. }),
  32. /**
  33. * Функция возвращает объект, содержащий данные метки.
  34. * Поле данных clusterCaption будет отображено в списке геообъектов в балуне кластера.
  35. * Поле balloonContentBody - источник данных для контента балуна.
  36. * Оба поля поддерживают HTML-разметку.
  37. * Список полей данных, которые используют стандартные макеты содержимого иконки метки
  38. * и балуна геообъектов, можно посмотреть в документации.
  39. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
  40. */
  41. /**
  42. * Функция возвращает объект, содержащий опции метки.
  43. * Все опции, которые поддерживают геообъекты, можно посмотреть в документации.
  44. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoObject.xml
  45. */
  46. getPointOptions = function () {
  47. return {
  48. preset: 'islands#greenIcon'
  49. };
  50. },
  51. points = [
  52. [*координаты*], [*координаты*]
  53. ]
  54. pointl = [
  55. 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std', 'std'
  56. ]
  57. geoObjects = [];
  58. var link = '';
  59. getPointData = function(i) {
  60. if (pointl[i] == 'std') {
  61. link = '<a href="?id=' + (i+1) + '">Панорама</a>';
  62. } else {
  63. link = pointl[i];
  64. }
  65. return {
  66. balloonContentBody: link,
  67. clusterCaption: i
  68. };
  69. },
  70. /**
  71. * Данные передаются вторым параметром в конструктор метки, опции - третьим.
  72. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Placemark.xml#constructor-summary
  73. */
  74. for (var i = 0, len = points.length; i < len; i++) {
  75. geoObjects[i] = new ymaps.Placemark(points[i], getPointData(i), getPointOptions());
  76. },
  77.  
  78. /**
  79. * Можно менять опции кластеризатора после создания.
  80. */
  81. clusterer.options.set({
  82. gridSize: 80,
  83. clusterDisableClickZoom: false
  84. });
  85.  
  86. /**
  87. * В кластеризатор можно добавить javascript-массив меток (не геоколлекцию) или одну метку.
  88. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer.xml#add
  89. */
  90. clusterer.add(geoObjects);
  91. myMap.geoObjects.add(clusterer);
  92.  
  93. /**
  94. * Спозиционируем карту так, чтобы на ней были видны все объекты.
  95. */
  96.  
  97. myMap.setBounds(clusterer.getBounds(), {
  98. checkZoomRange: true
  99. });
  100. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement