Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
D
default2
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yuri Bondarenko
default2
Commits
f50b9dfa
Commit
f50b9dfa
authored
May 11, 2019
by
Yuri Bondarenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
map
parent
8ddad0f7
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
445 deletions
+111
-445
src/components/head/head.html
src/components/head/head.html
+1
-1
src/components/ms-map/ms-map.js
src/components/ms-map/ms-map.js
+110
-444
No files found.
src/components/head/head.html
View file @
f50b9dfa
...
...
@@ -22,7 +22,7 @@
<meta
name=
"description"
content=
"@@description"
/>
@@if (env == 'DEV') {
<
link
href=
"@@path/css/vendor.css"
rel=
"stylesheet"
/
>
<
!-- link href="@@path/css/vendor.css" rel="stylesheet" / --
>
<link
href=
"@@path/css/app.css"
rel=
"stylesheet"
/>
} @@if (env == 'MOS') {
<!-- Yandex.Metrika counter -->
...
...
src/components/ms-map/ms-map.js
View file @
f50b9dfa
import
"
lightgallery.js
"
;
/**
*
*/
...
...
@@ -27,6 +28,9 @@ export default class msMap {
this
.
coords
=
[];
this
.
isEventVisible
=
false
;
this
.
popup
=
false
;
this
.
setBasePath
();
(
async
()
=>
{
...
...
@@ -64,13 +68,12 @@ export default class msMap {
async
loadData
()
{
fetch
(
"
https://moscowseasons.com/graphql
"
,
{
method
:
"
POST
"
,
body
:
{
data
:
`{
"operationName":"map",
"variables":{
"id":"
${
this
.
mapId
}
"
body
:
JSON
.
stringify
({
operationName
:
"
map
"
,
variables
:
{
id
:
this
.
mapId
},
"query":"
query map ($id: ID) {
query
:
`
query map ($id: ID) {
map(id: $id) {
slug
layers {
...
...
@@ -94,9 +97,8 @@ export default class msMap {
__typename
}
__typename
}"
}`
}
}
)
})
.
then
(
response
=>
response
.
json
())
.
then
(
data
=>
{
...
...
@@ -153,7 +155,7 @@ export default class msMap {
*/
async
initMap
()
{
/* global ymaps */
ymaps
.
ready
(
function
()
{
ymaps
.
ready
(
async
()
=>
{
this
.
map
=
new
ymaps
.
Map
(
"
ms-map__container
"
,
{
center
:
[
55.757
,
37.62233
],
zoom
:
11
...
...
@@ -184,11 +186,11 @@ export default class msMap {
let
coordsTemp
=
this
.
coords
.
slice
();
this
.
dataPoints
.
items
.
forEach
(
function
(
layer
)
{
this
.
dataPoints
.
items
.
forEach
(
layer
=>
{
// Группы точек
this
.
clusterObjects
[
layer
.
title
]
=
[];
layer
.
points
.
forEach
(
function
(
point
)
{
layer
.
points
.
forEach
(
point
=>
{
//console.log(point);
let
lon
=
Number
(
point
.
lon
);
...
...
@@ -224,7 +226,7 @@ export default class msMap {
}
);
marker
.
events
.
add
(
"
click
"
,
()
=>
{
marker
.
events
.
add
(
"
click
"
,
async
()
=>
{
for
(
var
keyLayer
in
clusterObjects
)
{
clusterObjects
[
keyLayer
].
forEach
(
function
(
point
)
{
point
.
options
.
set
({
...
...
@@ -249,7 +251,6 @@ export default class msMap {
if
(
!
this
.
showPointInfo
)
return
false
;
if
(
marker
.
properties
.
get
(
"
slug
"
)
==
null
)
{
document
.
querySelector
(
"
.ms-map__event-inner
"
).
innerHTML
=
""
;
const
wrapElement
=
document
.
createElement
(
"
div
"
);
...
...
@@ -263,449 +264,114 @@ export default class msMap {
descriptionElement
.
classList
.
add
(
"
ms-map__event-dscr
"
);
descriptionElement
.
innerHTML
=
marker
.
properties
.
get
(
"
title
"
);
wrapElement
.
appendChild
(
addressElement
);
wrapElement
.
appendChild
(
descriptionElement
);
document
.
querySelector
(
"
.ms-map__event-inner
"
).
appendChild
(
wrapElement
);
document
.
querySelector
(
"
.ms-map__close
"
).
style
.
display
=
"
block
"
;
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
>
641
)
{
$
(
"
.ms-map__event
"
).
show
();
}
else
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
<
640
)
{
$
.
fancybox
.
open
([
{
src
:
"
#map-event
"
,
slideShow
:
false
,
closeBtn
:
false
,
scrolling
:
false
,
buttons
:
[],
touch
:
{
vertical
:
false
},
baseTpl
:
'
<div class="fancybox-container" role="dialog" tabindex="-1">
'
+
'
<div class="fancybox-inner">
'
+
'
<div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div>
'
+
'
<div class="fancybox-toolbar">{{buttons}}</div>
'
+
'
<div class="fancybox-navigation">{{arrows}}</div>
'
+
'
<div class="fancybox-stage"></div>
'
+
'
<div class="fancybox-caption"></div>
'
+
"
</div>
"
+
"
</div>
"
}
]);
}
}
else
{
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
>
641
)
{
$
(
"
.ms-map__event
"
).
fadeIn
();
}
else
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
<=
641
)
{
$
.
fancybox
.
open
([
{
src
:
"
#map-event
"
,
slideShow
:
false
,
closeBtn
:
false
,
scrolling
:
false
,
buttons
:
[],
touch
:
{
vertical
:
false
},
baseTpl
:
'
<div class="fancybox-container" role="dialog" tabindex="-1">
'
+
'
<div class="fancybox-inner">
'
+
'
<div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div>
'
+
'
<div class="fancybox-toolbar">{{buttons}}</div>
'
+
'
<div class="fancybox-navigation">{{arrows}}</div>
'
+
'
<div class="fancybox-stage"></div>
'
+
'
<div class="fancybox-caption"></div>
'
+
"
</div>
"
+
"
</div>
"
}
]);
}
$
.
ajax
({
type
:
"
POST
"
,
url
:
"
https://moscowseasons.com/graphql
"
,
dataType
:
"
json
"
,
contentType
:
"
application/json
"
,
data
:
JSON
.
stringify
({
if
(
marker
.
properties
.
get
(
"
slug
"
)
==
null
)
{
const
imgData
=
await
fetch
(
"
https://moscowseasons.com/graphql
"
,
{
method
:
"
POST
"
,
body
:
JSON
.
stringify
({
operationName
:
"
event
"
,
variables
:
{
slug
:
marker
.
properties
.
get
(
"
slug
"
),
locale
:
"
RU
"
},
query
:
"
query event($slug: String) { event(slug: $slug) {
\n
...EventFragment __typename
\n
}
\n
}
\n
fragment EventFragment on Event {
\n
...ShortEventFragment __typename
\n
}
\n
fragment ShortEventFragment on Event {
\n
id
\n
locale
\n
slug
\n
title description address {
\n
address
\n
__typename
\n
}
\n
\n
images {
\n
id
\n
url
\n
resized(width: 500, height: 500) {
\n
url
\n
__typename
\n
}
\n
__typename
\n
}
\n
__typename
\n
}
\n
"
}),
success
:
function
(
data
)
{
$
(
"
.ms-map__event-inner
"
).
html
(
""
);
var
event
=
data
.
data
.
event
;
var
link
=
"
/
"
+
event
.
locale
.
toLowerCase
()
+
"
/event/
"
+
event
.
slug
;
var
target
=
"
_blank
"
;
if
(
window
.
location
.
host
==
"
www.mos.ru
"
||
window
.
location
.
host
==
"
newmos.mos.ru
"
)
{
target
=
"
_blank
"
;
link
=
"
https://moscowseasons.com/
"
+
event
.
locale
.
toLowerCase
()
+
"
/event/
"
+
event
.
slug
;
}
var
image_src
=
""
;
if
(
event
.
images
.
length
!=
0
)
{
image_src
=
event
.
images
[
0
].
resized
.
url
;
}
var
wrap
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-wrap
"
});
var
img
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-img
"
,
style
:
"
background-image: url(
"
+
image_src
+
"
)
"
});
var
title
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-title
"
,
text
:
event
.
title
});
var
address
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-address
"
,
text
:
event
.
address
.
address
});
var
description
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-dscr
"
,
html
:
marker
.
properties
.
get
(
"
desc
"
)
});
var
more
=
$
(
"
<a/>
"
,
{
class
:
"
ms-map__event-more
"
,
text
:
"
Подробнее
"
,
href
:
link
,
target
:
target
});
wrap
.
append
(
description
,
address
,
more
);
$
(
"
.ms-map__event-inner
"
).
append
(
title
,
img
,
wrap
);
$
(
"
.ms-map__close
"
).
fadeIn
();
}
});
}
});
clusterObjects
[
layer
.
title
].
push
(
marker
);
clusterer
.
add
(
marker
);
});
map
.
geoObjects
.
add
(
clusterer
);
objectManager
.
add
(
clusterObjects
);
});
// удаляем лишние контролы
map
.
controls
.
remove
(
"
searchControl
"
);
map
.
controls
.
remove
(
"
geolocationControl
"
);
map
.
controls
.
remove
(
"
typeSelector
"
);
map
.
controls
.
remove
(
"
trafficControl
"
);
var
supportsTouch
=
"
ontouchstart
"
in
document
.
documentElement
;
if
(
supportsTouch
)
{
map
.
behaviors
.
disable
(
"
drag
"
);
}
map
.
controls
.
remove
(
"
fullscreenControl
"
);
if
(
$
(
document
).
width
()
>=
1200
)
{
map
.
controls
.
remove
(
"
zoomControl
"
);
var
zoomControl
=
new
ymaps
.
control
.
ZoomControl
({
options
:
{
position
:
{
top
:
108
,
right
:
10
,
bottom
:
"
auto
"
,
left
:
"
auto
"
}
}
});
map
.
controls
.
add
(
zoomControl
);
}
// выключаем зум по скролу
map
.
behaviors
.
disable
([
"
scrollZoom
"
]);
// автомасштаб
map
.
setBounds
(
// map.geoObjects.getBounds(),
clusterer
.
getBounds
(),
{
checkZoomRange
:
true
,
zoomMargin
:
[
20
,
20
,
20
,
20
]
query
:
`query event($slug: String) {
event(slug: $slug) {
...EventFragment
__typename
}
).
then
(
function
()
{
//if( map.getZoom() > 15) map.setZoom(15);
});
});
}
}
(
function
(
$
,
window
,
document
,
undefined
)
{
var
MSMap
=
(
function
()
{
var
initMap
=
function
()
{
$
.
ajax
({
type
:
"
POST
"
,
url
:
"
https://moscowseasons.com/graphql
"
,
data
:
'
{"operationName":"map","variables":{"id":"
'
+
map_id
+
'
"},"query":"query map ($id: ID) { map(id: $id) { slug layers{header points{address{lat lon address __typename} title shortDesc event {slug } __typename} __typename} __typename } __typename }"}
'
,
success
:
function
(
data
)
{
//console.log(data_points.items);
/* Yandex maps */
ymaps
.
ready
(
function
()
{
map
=
new
ymaps
.
Map
(
"
ms-map__container
"
,
{
center
:
[
55.757
,
37.62233
],
zoom
:
11
});
map
.
margin
.
addArea
({
left
:
0
,
top
:
0
// width: zoom_offset,
// height: '100%'
});
objectManager
=
new
ymaps
.
ObjectManager
({
// Чтобы метки начали кластеризоваться, выставляем опцию.
clusterize
:
true
,
// ObjectManager принимает те же опции, что и кластеризатор.
gridSize
:
64
,
// Макет метки кластера pieChart.
clusterIconLayout
:
"
default#pieChart
"
});
clusterer
=
new
ymaps
.
Clusterer
({
preset
:
"
islands#invertedRedClusterIcons
"
,
groupByCoordinates
:
false
,
//gridSize: 120,
zoomMargin
:
30
,
clusterDisableClickZoom
:
false
});
var
clusterObjects
=
[];
var
coords_temp
=
coords
.
slice
();
data_points
.
items
.
forEach
(
function
(
layer
)
{
// Группы точек
clusterObjects
[
layer
.
title
]
=
[];
layer
.
points
.
forEach
(
function
(
point
)
{
//console.log(point);
var
lon
=
Number
(
point
.
lon
);
var
lat
=
Number
(
point
.
lat
);
//var repeat = coords_temp.filter(item => item === point.lon + '_' + point.lat).length;
var
repeat
=
coords_temp
.
filter
(
function
(
item
)
{
if
(
item
===
point
.
lon
+
"
_
"
+
point
.
lat
)
{
return
item
;
fragment EventFragment on Event {
...ShortEventFragment
__typename
}
}).
length
;
//console.log(repeat);
if
(
repeat
===
0
)
{
return
;
}
else
if
(
repeat
>
1
)
{
$
.
each
(
coords_temp
,
function
(
index
,
coord
)
{
if
(
coord
==
point
.
lon
+
"
_
"
+
point
.
lat
)
{
coords_temp
.
splice
(
index
,
1
);
fragment ShortEventFragment on Event {
id
locale
slug
title
description
address {
address
__typename
}
});
images {
id
url
resized(width: 500, height: 500) {
url
__typename
}
var
marker
=
new
ymaps
.
Placemark
(
[
lat
,
lon
],
{
hintContent
:
point
.
address
,
//openEmptyBalloon: false,
slug
:
point
.
slug
,
title
:
point
.
title
,
image
:
point
.
image
,
address
:
point
.
address
,
desc
:
point
.
shortDesc
},
{
iconLayout
:
"
default#image
"
,
iconImageHref
:
base_path_pin
,
iconImageSize
:
[
30
,
30
],
iconImageOffset
:
[
-
15
,
-
15
],
id
:
point
.
id
,
balloonPanelMaxMapArea
:
0
,
openEmptyBalloon
:
false
__typename
}
);
marker
.
events
.
add
(
"
click
"
,
function
(
e
)
{
for
(
var
keyLayer
in
clusterObjects
)
{
clusterObjects
[
keyLayer
].
forEach
(
function
(
point
)
{
point
.
options
.
set
({
iconImageHref
:
base_path_pin
,
iconImageSize
:
[
30
,
30
],
iconImageOffset
:
[
-
15
,
-
15
]
});
__typename
}`
})
});
const
img
=
await
imgData
.
json
();
console
.
log
(
img
);
}
marker
.
options
.
set
({
iconImageHref
:
base_path_pin_active
,
iconLayout
:
"
default#image
"
,
iconImageSize
:
[
37
,
50
],
iconImageOffset
:
[
-
18
,
-
25
]
});
wrapElement
.
appendChild
(
addressElement
);
wrapElement
.
appendChild
(
descriptionElement
);
map
.
margin
.
addArea
({
right
:
0
,
bottom
:
0
//width: 500,
//height: '100%'
});
document
.
querySelector
(
"
.ms-map__event-inner
"
).
appendChild
(
wrapElement
);
if
(
!
point_info
)
return
false
;
document
.
querySelector
(
"
.ms-map__close
"
).
style
.
display
=
"
block
"
;
if
(
marker
.
properties
.
get
(
"
slug
"
)
==
null
)
{
$
(
"
.ms-map__event-inner
"
).
html
(
""
);
var
wrap
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-wrap
"
});
var
address
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-address ms-map__event-address--empty
"
,
text
:
marker
.
properties
.
get
(
"
address
"
)
});
var
description
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-dscr
"
,
html
:
marker
.
properties
.
get
(
"
title
"
)
});
wrap
.
append
(
address
,
description
);
$
(
"
.ms-map__event-inner
"
).
append
(
wrap
);
$
(
"
.ms-map__close
"
).
fadeIn
();
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
>
641
)
{
$
(
"
.ms-map__event
"
).
show
();
}
else
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
<
640
)
{
$
.
fancybox
.
open
([
{
src
:
"
#map-event
"
,
slideShow
:
false
,
closeBtn
:
false
,
scrolling
:
false
,
buttons
:
[],
touch
:
{
vertical
:
false
},
baseTpl
:
'
<div class="fancybox-container" role="dialog" tabindex="-1">
'
+
'
<div class="fancybox-inner">
'
+
'
<div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div>
'
+
'
<div class="fancybox-toolbar">{{buttons}}</div>
'
+
'
<div class="fancybox-navigation">{{arrows}}</div>
'
+
'
<div class="fancybox-stage"></div>
'
+
'
<div class="fancybox-caption"></div>
'
+
"
</div>
"
+
"
</div>
"
}
]);
if
(
window
.
matchMedia
(
"
(max-width: 640px)
"
).
matches
)
{
/* mobile */
if
(
this
.
isEventVisible
)
{
if
(
this
.
popup
)
{
this
.
popup
.
destroy
(
true
);
this
.
popup
=
null
;
this
.
isEventVisible
=
false
;
}
}
else
{
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
>
641
)
{
$
(
"
.ms-map__event
"
).
fadeIn
();
}
else
if
(
!
$
(
"
.ms-map__event
"
).
is
(
"
:visible
"
)
&&
$
(
window
).
width
()
<=
641
)
{
$
.
fancybox
.
open
([
{
src
:
"
#map-event
"
,
slideShow
:
false
,
closeBtn
:
false
,
scrolling
:
false
,
buttons
:
[],
touch
:
{
vertical
:
false
},
baseTpl
:
'
<div class="fancybox-container" role="dialog" tabindex="-1">
'
+
'
<div class="fancybox-inner">
'
+
'
<div class="fancybox-infobar"><span data-fancybox-index></span> / <span data-fancybox-count></span></div>
'
+
'
<div class="fancybox-toolbar">{{buttons}}</div>
'
+
'
<div class="fancybox-navigation">{{arrows}}</div>
'
+
'
<div class="fancybox-stage"></div>
'
+
'
<div class="fancybox-caption"></div>
'
+
"
</div>
"
+
"
</div>
"
}
]);
}
$
.
ajax
({
type
:
"
POST
"
,
url
:
"
https://moscowseasons.com/graphql
"
,
dataType
:
"
json
"
,
contentType
:
"
application/json
"
,
data
:
JSON
.
stringify
({
operationName
:
"
event
"
,
variables
:
{
slug
:
marker
.
properties
.
get
(
"
slug
"
),
locale
:
"
RU
"
},
query
:
"
query event($slug: String) { event(slug: $slug) {
\n
...EventFragment __typename
\n
}
\n
}
\n
fragment EventFragment on Event {
\n
...ShortEventFragment __typename
\n
}
\n
fragment ShortEventFragment on Event {
\n
id
\n
locale
\n
slug
\n
title description address {
\n
address
\n
__typename
\n
}
\n
\n
images {
\n
id
\n
url
\n
resized(width: 500, height: 500) {
\n
url
\n
__typename
\n
}
\n
__typename
\n
}
\n
__typename
\n
}
\n
"
}),
success
:
function
(
data
)
{
$
(
"
.ms-map__event-inner
"
).
html
(
""
);
var
event
=
data
.
data
.
event
;
var
link
=
"
/
"
+
event
.
locale
.
toLowerCase
()
+
"
/event/
"
+
event
.
slug
;
var
target
=
"
_blank
"
;
if
(
window
.
location
.
host
==
"
www.mos.ru
"
||
window
.
location
.
host
==
"
newmos.mos.ru
"
)
{
target
=
"
_blank
"
;
link
=
"
https://moscowseasons.com/
"
+
event
.
locale
.
toLowerCase
()
+
"
/event/
"
+
event
.
slug
;
}
var
image_src
=
""
;
if
(
event
.
images
.
length
!=
0
)
{
image_src
=
event
.
images
[
0
].
resized
.
url
;
/* global lightGallery */
this
.
popup
=
lightGallery
(
document
.
getElementById
(
"
map-event
"
));
this
.
isEventVisible
=
true
;
}
var
wrap
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-wrap
"
});
var
img
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-img
"
,
style
:
"
background-image: url(
"
+
image_src
+
"
)
"
});
var
title
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-title
"
,
text
:
event
.
title
});
var
address
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-address
"
,
text
:
event
.
address
.
address
});
var
description
=
$
(
"
<div/>
"
,
{
class
:
"
ms-map__event-dscr
"
,
html
:
marker
.
properties
.
get
(
"
desc
"
)
});
var
more
=
$
(
"
<a/>
"
,
{
class
:
"
ms-map__event-more
"
,
text
:
"
Подробнее
"
,
href
:
link
,
target
:
target
});
wrap
.
append
(
description
,
address
,
more
);
$
(
"
.ms-map__event-inner
"
).
append
(
title
,
img
,
wrap
);
$
(
"
.ms-map__close
"
).
fadeIn
();
}
else
{
/* desktop */
if
(
this
.
isEventVisible
)
{
document
.
querySelector
(
"
.ms-map__event
"
).
style
.
display
=
"
none
"
;
}
else
{
document
.
querySelector
(
"
.ms-map__event
"
).
style
.
display
=
"
block
"
;
}
});
}
});
clusterObjects
[
layer
.
title
].
push
(
marker
);
clusterer
.
add
(
marker
);
this
.
clusterObjects
[
layer
.
title
].
push
(
marker
);
this
.
clusterer
.
add
(
marker
);
});
map
.
geoObjects
.
add
(
clusterer
);
objectManager
.
add
(
clusterObjects
);
this
.
map
.
geoObjects
.
add
(
this
.
clusterer
);
this
.
objectManager
.
add
(
this
.
clusterObjects
);
});
// удаляем лишние контролы
map
.
controls
.
remove
(
"
searchControl
"
);
map
.
controls
.
remove
(
"
geolocationControl
"
);
map
.
controls
.
remove
(
"
typeSelector
"
);
map
.
controls
.
remove
(
"
trafficControl
"
);
var
supportsTouch
=
"
ontouchstart
"
in
document
.
documentElement
;
if
(
supportsTouch
)
{
map
.
behaviors
.
disable
(
"
drag
"
);
}
this
.
map
.
controls
.
remove
(
"
searchControl
"
);
this
.
map
.
controls
.
remove
(
"
geolocationControl
"
);
this
.
map
.
controls
.
remove
(
"
typeSelector
"
);
this
.
map
.
controls
.
remove
(
"
trafficControl
"
);
map
.
controls
.
remove
(
"
fullscreenControl
"
);
if
(
$
(
document
).
width
()
>=
1200
)
{
map
.
controls
.
remove
(
"
zoomControl
"
);
var
zoomControl
=
new
ymaps
.
control
.
ZoomControl
({
options
:
{
position
:
{
top
:
108
,
right
:
10
,
bottom
:
"
auto
"
,
left
:
"
auto
"
}
if
(
"
ontouchstart
"
in
document
.
documentElement
)
{
this
.
map
.
behaviors
.
disable
(
"
drag
"
);
}
});
map
.
controls
.
add
(
zoomControl
);
}
this
.
map
.
controls
.
remove
(
"
fullscreenControl
"
);
// выключаем зум по скролу
map
.
behaviors
.
disable
([
"
scrollZoom
"
]);
this
.
map
.
behaviors
.
disable
([
"
scrollZoom
"
]);
// автомасштаб
map
.
setBounds
(
// map.geoObjects.getBounds(),
clusterer
.
getBounds
(),
{
this
.
map
.
setBounds
(
this
.
clusterer
.
getBounds
(),
{
checkZoomRange
:
true
,
zoomMargin
:
[
20
,
20
,
20
,
20
]
}
)
.
then
(
function
()
{
})
.
then
(
function
()
{
//if( map.getZoom() > 15) map.setZoom(15);
});
});
}
});
$
(
"
.ms-map__close
"
).
click
(
function
()
{
$
(
this
).
fadeOut
();
if
(
$
(
window
).
width
()
<
640
)
{
$
.
fancybox
.
close
();
}
else
{
$
(
"
.ms-map__event
"
).
fadeOut
();
}
$
(
"
.ms-map__event-inner
"
).
html
(
""
);
});
};
return
{
/**
* инициализация модуля
*/
init
:
function
()
{
var
t
=
setInterval
(
function
()
{
try
{
if
(
ymaps
)
{
initMap
();
clearInterval
(
t
);
}
}
catch
(
err
)
{
throw
"
ymaps not loaded yet
"
;
}
},
400
);
}
};
})();
// Export
window
.
MSMap
=
MSMap
;
})(
jQuery
,
this
,
this
.
document
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment