Страницы

Поиск по вопросам

понедельник, 29 октября 2018 г.

HTML5 карта России, есть ли бесплатная? [закрыт]

Интересует карта России, встраиваемая в web-страницу, с кликабельными регионами, с регулируемыми ховерами на регионах, не flash. Желательно не обфусцированный JS-код.
Популярна такая платная карта http://fla-shop.com.ru/products/html5/ru-locator-map/ . Есть такая бесплатная http://evrohimservis.ru/map/ - судя по всему пиратская версия первой карты.
Существуют ли подобные бесплатные не краденые JS-плагины?


Ответ

Еще у Яндекса есть, там точно бесплатно https://tech.yandex.ru/maps/jsbox/2.1/regions
var REGIONS_DATA = { region: { title: 'Регион', items: [{ id: '001', title: 'Страны мира' }, { id: 'BY', title: 'Беларусь' }, { id: 'KZ', title: 'Казахстан' }, { id: 'RU', title: 'Россия' }, { id: 'TR', title: 'Турция' }, { id: 'UA', title: 'Украина' }] }, lang: { title: 'Язык', items: [{ id: 'en', title: 'Английский' }, { id: 'be', title: 'Белорусский' }, { id: 'kk', title: 'Казахский' }, { id: 'ru', title: 'Русский' }, { id: 'tr', title: 'Турецкий' }, { id: 'uk', title: 'Украинский' }] }, quality: { title: 'Точность границ', items: [{ id: '0', title: '0' }, { id: '1', title: '1' }, { id: '2', title: '2' }, { id: '3', title: '3' }] } }, // Шаблон html-содержимого макета. optionsTemplate = [ '

', '{% for paramName, param in data.params %}', '{% for key, value in state.values %}', '{% if key == paramName %}', '
', '', '{{ param.title }}', ': {{ value }}', ' ', '', '', '
 ', '{% endif %}', '{% endfor %}', '{% endfor %}', '
' ].join(''); ymaps.ready(init); function init() { // Создадим собственный макет RegionControl. var RegionControlLayout = ymaps.templateLayoutFactory.createClass(optionsTemplate, { build: function () { RegionControlLayout.superclass.build.call(this); this.handleClick = ymaps.util.bind(this.handleClick, this); $(this.getParentElement) .on('click', 'a', this.handleClick); }, clear: function () { $(this.getParentElement) .off('click', 'a', this.handleClick); RegionControlLayout.superclass.clear.call(this); }, handleClick: function (e) { e.preventDefault(); var $target = $(e.currentTarget); var state = this.getData().state; var newValues = ymaps.util.extend({}, state.get('values')); if (!$target.hasClass('active')) { newValues[$target.data('param')] = $target.data('id'); state.set('values', newValues); } } }), // Наследуем класс нашего контрола от ymaps.control.Button. RegionControl = ymaps.util.defineClass(function (parameters) { RegionControl.superclass.constructor.call(this, parameters); this.regions = new ymaps.GeoObjectCollection(); }, ymaps.control.Button, /** @lends ymaps.control.Button */{ onAddToMap: function (map) { RegionControl.superclass.onAddToMap.call(this, map); map.geoObjects.add(this.regions); this.setupStateMonitor(); this.loadRegions(this.state.get('values')); }, onRemoveFromMap: function (map) { map.geoObjects.remove(this.regions); this.clearStateMonitor(); RegionControl.superclass.onRemoveFromMap.call(this, map); }, setupStateMonitor: function () { this.stateMonitor = new ymaps.Monitor(this.state); this.stateMonitor.add('values', this.handleStateChange, this); }, clearStateMonitor: function () { this.stateMonitor.removeAll(); }, handleStateChange: function (params) { this.loadRegions(params); }, handleRegionsLoaded: function (res) { this.regions .removeAll() .add(res.geoObjects); this.getMap().setBounds( this.regions.getBounds(), {checkZoomRange: true} ); }, loadRegions: function (params) { this.disable(); return ymaps.regions.load(params.region, params) .then(this.handleRegionsLoaded, this) .always(this.enable, this); } }), map = new ymaps.Map('map', { center: [50, 30], zoom: 3, controls: ['typeSelector'] }, { typeSelectorSize: 'small' }), // Создадим экземпляр RegionControl. regionControl = new RegionControl({ state: { enabled: true, values: { region: 'RU', lang: 'ru', quality: '1' } }, data: { params: REGIONS_DATA }, options: { layout: RegionControlLayout }, float: 'left', maxWidth: [300] }); // Добавим контрол на карту. map.controls.add(regionControl); // Узнавать о изменениях параметров RegionControl можно следующим образом. regionControl.events.add('statechange', function (e) { console.log(e.get('target').get('values')); }); } Примеры. Регионы

Ну и да, Вы не обязаны проверять а правда ли это ворованная карта. Да и не проверить никак. Можно указать ссылку на источник где скачали и где было написано что она бесплатная. Также пройтись подкорректировать исходник и сделать ему обфускацию.

Комментариев нет:

Отправить комментарий