Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.01.2014, 14:46
Аспирант
Отправить личное сообщение для doox911 Посмотреть профиль Найти все сообщения от doox911
 
Регистрация: 01.04.2013
Сообщений: 56

Как вставить карту в JQuery Modile?
Доброго времени суток.

<!DOCTYPE html> 
<html> 
	<head>
   
	<title></title>
  <meta charset="utf-8" />
  
  <!-- Необходимо для того, чтобы страница отображалась в 100% масштабе.-->
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"> 
  
  <!-- Подключаем различный таблицы стилей. Выбор подключаемой таблицы зависит от расширерения экрана. -->
  <link rel="stylesheet" type="text/css" media="screen and (min-device-width: 800px)" href="kub_pc.css" />
  <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 799px)" href="kub_mobile.css" />
  
  <!-- Подключаем JQuery, JQuery Mobile и JQuery Mobile CSS -->
  <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
  
  <link rel="stylesheet" href="css/themes/mJQuery.css" />
  <link rel="stylesheet" href="css/themes/jquery.mobile.icons.min.css" />
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile.structure-1.4.0.min.css" />
  
  <!-- Подключаем leaflet JS и leaflet CSS, для отображения карты -->
  <script src="http://cdn.leafletjs.com/leaflet-0.7.1/leaflet.js"></script>
  <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.1/leaflet.css" />

 </head>
<body> 
  <div data-role="page">
 
   <!-- header -->
   <div data-role="header">
	 </div>
   <!-- /header -->
  
   <!-- content -->
   <div data-role="content">
 <div id="map">
 <style>
#map{
 width: 100%;
 height: 100%;
    position:relative;
    top:0px;
}
#adm_hatun{
 margin:0;
 padding:0;
 width: 300px;
 height: 100px;    
}
#adm_hatun i{
 font: 10px Arial;
}
#church{}
#school{}
#circle{}
  
 </style>  
 <script>
  var  MAP = new L.map('map',
  {
   center: [55.00568744289998,37.83303327379225],
   zoom: 13,
   zoomControl: false,
   attributionControl: false,
   scrollWheelZoom: false   
  });// Создали объект карта с параметрами
  var OSMLayer = new L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png',
   {
    attribution:''
   }
  ); // Создали объект слоя OSM      
  var adm_hatun = new L.marker([55.00568744289998,37.83303327379225]).addTo(MAP);
  var church = new L.marker([55.00629042601082,37.83461041269301]).addTo(MAP);
  var school = new L.marker([55.00896067082531,37.83561892328261]).addTo(MAP);
  var circle = L.circle([55.002115505025856,37.83243245897292], 50, {
    color: 'red',
    fillColor: '#f03',
    fillOpacity: 0.5
}).addTo(MAP);
  adm_hatun.bindPopup('<div id="adm_hatun"><table><tr><td><i>Администрация - Сельское поселение Семёновское</i></td><td></td></tr></table></div>');
  church.bindPopup('<div id="adm_hatun"><table><tr><td><i>Церковь Рождества Пресвятой Богородицы</i></td><td><img src="cherch.jpeg" /></td></tr></table></div>');
  school.bindPopup("Школа");
  circle.bindPopup("Торговая площадь");

            
  var zoom = L.control.zoom({
      position: 'topright',
      zoomInText: '+',
      zoomOutText: '-',
      zoomInTitle: 'Увеличить',
      zoomOutTitle: 'Уменьшить'
  }).addTo(MAP);
  var scale = L.control.scale({
   position: 'bottomleft',
   metric: true,
   imperial: false
  }).addTo(MAP);
  MAP.addLayer(OSMLayer);
    
 </script>
 </div>    
	 </div>
   <!-- /content -->
   
   <!-- footer -->
	 <div data-role="footer">
	  <h4>Page Footer</h4>
	 </div>
   <!-- /footer -->
  </div>
  <!-- /page -->
 </body>
</html>


В без данного API всё отображается. А с ней не хочет. Почему?
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2014, 12:41
Аспирант
Отправить личное сообщение для doox911 Посмотреть профиль Найти все сообщения от doox911
 
Регистрация: 01.04.2013
Сообщений: 56

Разбираясь Я обнаружил:

1. Необходимо было изменить это:
Код:
<div data-role="content">
На это:
Код:
<div data-role="content" id="content">
И задать ему ширину и высоту. Но теперь, Я столкнулся с другой проблемой. Библиотека JQuery Mobile влияет на отображение карты. Но это пол беды. Мне интересно другое. Карта становится видимой, только после изменения видимой области? Почему?
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2014, 10:47
Аспирант
Отправить личное сообщение для doox911 Посмотреть профиль Найти все сообщения от doox911
 
Регистрация: 01.04.2013
Сообщений: 56

Теперь ещё один феномен. В ff работает всё ок, а в хроме нет.
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2014, 12:31
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

вы наподключали кучу стилей и библиотек, которые по-своему меняют вывод, вот и разбирайтесь теперь, кто именно портит.
ну и так, для и общего развития - не нужно в хтмл, и тем более внутрь дива лепить стили и скрипты.
внедряем все это либо в хэде, либо перед закрывающим боди.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Вроде видел статью, как вставить свой тег с помощью css ...но как то пробежал мимо Deff (X)HTML/CSS 2 09.07.2013 12:49
Можно ли как то вставить произвольный код в texarea foreach jQuery 3 30.08.2011 00:59
Как задать условие в jquery чтобы он проводил линию.. voloxa89 Элементы интерфейса 7 17.08.2011 10:00
JQUERY - как скачать данную библиотеку? Golovastik jQuery 7 06.03.2011 18:03