Обсуждение:WikiLeaflet

На этой странице нет обсуждений.

Можно ли доработать расширение так, чтобы оно могло использовать карты других служб (Google Maps, Yahoo! Maps, Yandex Maps), причём переключение бы производилось при просмотре страницы?
Александр Машин 03:33, 5 июля 2011 (UTC)

  • Насколько я понимаю обстоятельства, для реализации этой затеи речь шла бы не о простом добавлении нового сéрвера тайлов (в массив TileServers в MediaWiki:WikiLeaflet.js), потому что, к сожалению, лицензия всех этих служб (в отличие от MapQuest, например) буквально предписывает использование их собственных API (а не Leaflet). Теоретически возможно, что нынешний код, который сейчас подкачивает Leaflet и WikiLeaflet:
/* ***  Отрисовка геокарт [[WikiLeaflet]]  *** */

LeafletRoot = '/w/leaflet/';
$(function(){
   if ($('.wikileaf').length !== 0){
      var WikiLeafletURL = wgScriptPath + '/index.php?title=' +
            escape( 'MediaWiki:WikiLeaflet.js' ) +
            '&action=raw&ctype=text/javascript&dontcountme=s';
 
      importStylesheet(LeafletRoot + 'leaflet.css');
      if ($.browser.msie && ($.browser.version < 9)){
         importStylesheet(LeafletRoot + 'leaflet.ie.css');
      }
      $.ajax({
         url: LeafletRoot + 'leaflet.js',
         dataType: 'script',
         cache: true,
         success: function(){
            $.ajax({
               url: WikiLeafletURL,
               dataType: 'script',
               cache: true,
               success: function(){
                  wlRender();
               }
            });
         }
      });
   }
});

может быть дополнен таким образом, чтобы по условию (в зависимости от состояния, переключаемого рядом стоящим переключателем) выполнять альтернативные действия:

  • вместо Leaflet подкачивать API выбранного сервера карт (Google, Yandex, Yahoo),
  • вместо WikiLeaflet подкачивать скрипт, транслирующий итог работы шаблона {{wl}} не в вызовы API Leaflet, а в вызовы API выбранного сервера карт (Google, Yandex, Yahoo).

На практике у меня в настоящее время нет времени и желания учетверить усилия вышеописанным способом. Нехватка времени вызвана обыкновенною занятостью, а нехватка желания вызывается в основном неприязнью к тому, что эти внешние скрипты:

  • больше по объёму, чем Leaflet (например, Яндекс.Карты тащат с собою собственную копию jQuery);
  • создают дополнительную дырку в безопасности (выполнение произвольного внешнего джаваскрипта в Традиции по выбору авторов сайтов карт или при атаке типа DNS spoofing на адресацию их хостов);
  • имеют частично еврейское расовое происхождение (по меньшей мере, Google да Yandex);
  • проприетарны, а не свободны (и скрипты, и карты), поэтому прибегают к регистрации (Yandex) или хотят показывать рекламу (намёк в лицензии гуглокарт);
  • используют карты, не поддающиеся вики-уточнению в духе краудсорсинга (и поэтому во многих местах менее точные, чем OSM).

Вследствие этого на ближайшее время (на полгода как минимум) я воздержусь от решения этой задачи. —Mithgol the Webmaster 06:45, 5 июля 2011 (UTC)

P. S. API Yahoo Maps прекратит работу 13 сентября 2011 года.Mithgol the Webmaster 06:47, 5 июля 2011 (UTC)

Вернуться на страницу «WikiLeaflet».