Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function newCreatePublicObjectButton(map) {
- var button = new ymaps.control.Button({
- data: {
- // Текст на кнопке.
- content: 'Создать объект'
- },
- options: {
- // Зададим опции кнопки.
- selectOnClick: false,
- // У кнопки будет три состояния: иконка, текст и текст + иконка.
- // Зададим три значения ширины кнопки для всех состояний.
- maxWidth: [30, 100, 150]
- }
- });
- button.events.add('click', function (e) {
- if (button._creating) {
- button.savePublicObject();
- } else {
- button.createPublicObject();
- }
- });
- button._map = map;
- button._creating = false;
- button._cancelButton = null;
- button._placemark = null;
- button.createPublicObject = function () {
- button._creating = true;
- button._cancelButton = newCancelCreatingPublicObjectButton(button);
- button._map.controls.add(button._cancelButton,
- { position: {right: '5px', bottom: '60px'}});
- button._placemark = newDraggablePlacemark();
- button._map.geoObjects.add(button._placemark);
- button.data.set('content', 'Сохранить');
- };
- button.cancelCreatingPublicObject = function() {
- button._creating = false;
- button._map.controls.remove(button._cancelButton);
- button._cancelButton = null;
- button._map.geoObjects.remove(button._placemark);
- button._placemark = null;
- button.data.set('content', 'Создать объект');
- };
- button.savePublicObject = function() {
- alert(button._placemark.getCoordinates());
- button.cancelCreatingPublicObject();
- };
- return button;
- }
- function newCancelCreatingPublicObjectButton(createButton) {
- var button = new ymaps.control.Button({
- data: {
- // Текст на кнопке.
- content: 'Отменить'
- },
- options: {
- // Зададим опции кнопки.
- selectOnClick: false,
- // У кнопки будет три состояния: иконка, текст и текст + иконка.
- // Зададим три значения ширины кнопки для всех состояний.
- maxWidth: [30, 100, 150]
- }});
- button.events.add('click', function (e) {
- button._createButton.cancelCreatingPublicObject();
- });
- button._createButton = createButton;
- return button;
- }
- function newDraggablePlacemark() {
- // Метка, содержимое балуна которой загружается с помощью AJAX.
- var placemark = new ymaps.Placemark([55.8, 37.72], {
- iconContent: "Новый объект"
- }, {
- draggable: "true",
- preset: "islands#blueStretchyIcon",
- // Заставляем балун открываться даже если в нем нет содержимого.
- openEmptyBalloon: true
- });
- placemark.getCoordinates = function() {
- return placemark.geometry.getCoordinates();
- };
- return placemark;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement