Интерактивная карта
Здравствуйте! Есть задача сделать интерактивную карту, очень похожую на карты яндекса и гугла. Карта - большущее растровое изображение, на котором можно будет ставить отметки, что бы они были в виде ссылок. На сайте карта будет показана в небольшом блоке, пускай будет 800x400, но нужно реализовать зум-еффект(как у гугла или яндекса). Картинка при любом размере будет одна и та же, то есть при приближении ничего там не будет детализироватся.
http://us.ua/1390961/ Это архив того, что уже есть. В нем php файл(не очень красивый, но свое делает) который сохраняет новые созданные точечки на карте в базу данных и выводит все их на карту. Таблица 'dots' со столбцами(id, left_pos, top_pos, link). Здесь используется маленькое изображение, но будет, как указано выше. Осталось реализовать зум эффект. Перепробовал много плагинов и в основном проблема в том, что уменьшается только сама карта, без точек, которые на ней, а нужно что бы все елементы уменьшались и увеличивались. Прошу помощи, или хоть дайте наводку, какой плагин попробовать. Заранее благодарен=) |
а что мешает использовать для этой задачи яндекс/гугл?..
|
Конечно было бы намного проще, но у карты будет свой фоновый рисунок.
|
dreamweaver используйте там есть такая фишка
|
тогда вам нужно построить свою картографию, с экватором и рострами...
копайте в сторону http://leafletjs.com/ - она умеет работать с пользовательскими тайлами. Тайлы придется делать самостоятельно для какого-то участка местности. |
happy_man,
Макет интерактивной карты с метками на основе jQuery UI Resizable -- картинку тянуть справа или снизу -- метки ставить кликом ... :write: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>resizable demo</title> <link rel="stylesheet" href="https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <style> body{ background: #DEB887 } #resizable{ width:550px; height:330px; margin: 0% auto; } #resizable img{ width:100%; height:100%; } .positionDiv{ padding:2px 4px; opacity:0.6; background-color:#FFFFFF; position:absolute; z-index:100; color:#000000; } .circle { position:absolute; width: 2%; height: 2%; background: red; -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> <script src="https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> </head> <body> <div id="resizable"> <img src="https://savepic.net/6201412.jpg" alt=""></div> <script> var table = [{ left: "40%", top: "61%", text: "Солнышко" }, { left: "60%", top: "81%", text: "Кораблик" }]; $.each(table, function (indx, el) { var div = $("<div/>", { "class": "positionDiv", "css": { "left": el.left, "top": el.top }, "text": el.text }).prependTo("#resizable") }); $("#resizable").resizable({handles:" e, s, se",aspectRatio:true }); $("#resizable").click(function (ev) { var div = $("<div/>", { "class": "circle", "title": "circle" }) div.prependTo(this).position({ my: "left top", of: ev, offset: "3 -3", collision: "fit" }); var pos = div.position(), h = $(this).height(), w = $(this).width(), left = Math.round(pos.left * 100 / w) + "%", top = Math.round(pos.top * 100 / h) + "%"; div.css({ "left": left, "top": top, height : w/h*2+"%" }) div.tooltip({ content:left+top}); }) </script> </body> </html> |
Советую http://raphaeljs.com/
|
Цитата:
|
Здравствуйте! Прошу помощи! Никак не могу закончить с этой картой. Осталось совсем немного уже. Ниже ссылка на архив. Проблема с jquery ui(draggable). Надо что бы при перемещении блока с изображением карты, он перемещался строго до краев родительского блока, сейчас же его можно вообще выдвинуть, что бы его не было видно. Заранее благодарен.
http://webfile.ru/2d9380e55db2ba23b78a47847ed4091c |
|
Часовой пояс GMT +3, время: 05:01. |