Новичок
Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009
Репутация: нет Всего: нет
|
Здравствуйте. Решил тут попробовать YandexAPI 2 и WebBrowser. Имеется код страницы: Код |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Примеры. Добавление меток на карту.</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!-- Подключаем API карт 2.x Параметры: - load=package.full - полная сборка; - lang=ru-RU - язык русский. --> <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script> <script src="http://yandex.st/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> // Как только будет загружен API и готов DOM, выполняем инициализацию ymaps.ready(init); function init () { var myMap = new ymaps.Map("map", {center: [54.97135, 32.5824],zoom: 13, behaviors:['default', 'scrollZoom']}); var destinations = {'ОООПерспектива ПО Кардымовский пищевик (215850, Россия, Смоленская обл., Кардымово пос., ул. Ленина ул, д. 27,)': [54.8899, 32.4339], 'ОООКисель (215850, Россия, Смоленская обл., Кардымово пос., ул. Красноармейская ул, д. 10-а,)': [54.8898, 32.4347], 'ОООУлыбка (215850, Россия, Смоленская обл., Кардымово пос., ул. Красноармейская ул, д. 18а,)': [54.8913, 32.433], 'ОООСтарозавопье (215807, Россия, Смоленская обл., Ярцево, ул. Старозавопье ул, д. 13,)': [55.0529, 32.7229], 'ООО Ассорти (215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 20,)': [55.0504, 32.7269], 'ООО Цитрус/Ярцево (215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 22а,)': [55.0504, 32.7269], 'ООО Тимур (215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 40,)': [55.0489, 32.7233], 'ОООСолнечное (215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 21б,)': [55.0487, 32.7279], 'ООО Ритм (215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр,)': [55.0501, 32.7309], 'ООО Рябинушка (215805, Россия, Смоленская обл., Ярцево, ул. Строителей ул., д. 6,)': [55.0519, 32.7317], 'ООО Тимур (215800, Россия, Смоленская обл., Ярцево, ул. Автозаводская ул, д. 4,)': [55.0443, 32.7318], 'ООО Уралочка (215800, Россия, Смоленская обл., Ярцево, ул. Студенческая ул, д. 13,)': [55.0402, 32.727], 'ООО Луч (215800, Россия, Смоленская обл., Ярцево, ул. Энтузиастов ул, д. 36,)': [55.044, 32.7245], }; var menuContainer = $('#mapMenu'); // При создании метки указываем ее свойства: текст для отображения в иконке и содержимое балуна, // который откроется при нажатии на эту метку var myPlacemark1 = new ymaps.Placemark([54.8899, 32.4339], { iconContent: '1 - ОООПерспектива ПО Кардымовский пищевик', balloonContentHeader: '1 - Стандарт ТП (ОООПерспектива ПО Кардымовский пищевик)', balloonContentBody: '215850, Россия, Смоленская обл., Кардымово пос., ул. Ленина ул, д. 27,', balloonContentFooter: '10:41' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark1); var myPlacemark2 = new ymaps.Placemark([54.8898, 32.4347], { iconContent: '2 - ОООКисель', balloonContentHeader: '2 - Стандарт ТП (ОООКисель)', balloonContentBody: '215850, Россия, Смоленская обл., Кардымово пос., ул. Красноармейская ул, д. 10-а,', balloonContentFooter: '10:54' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark2); var myPlacemark3 = new ymaps.Placemark([54.8913, 32.433], { iconContent: '3 - ОООУлыбка', balloonContentHeader: '3 - Стандарт ТП (ОООУлыбка)', balloonContentBody: '215850, Россия, Смоленская обл., Кардымово пос., ул. Красноармейская ул, д. 18а,', balloonContentFooter: '11:38' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark3); var myPlacemark4 = new ymaps.Placemark([55.0529, 32.7229], { iconContent: '4 - ОООСтарозавопье', balloonContentHeader: '4 - Стандарт ТП (ОООСтарозавопье)', balloonContentBody: '215807, Россия, Смоленская обл., Ярцево, ул. Старозавопье ул, д. 13,', balloonContentFooter: '13:00' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark4); var myPlacemark5 = new ymaps.Placemark([55.0504, 32.7269], { iconContent: '5 - ООО Ассорти', balloonContentHeader: '5 - Стандарт ТП (ООО Ассорти)', balloonContentBody: '215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 20,', balloonContentFooter: '13:25' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark5); var myPlacemark6 = new ymaps.Placemark([55.0504, 32.7269], { iconContent: '6 - ООО Цитрус/Ярцево', balloonContentHeader: '6 - Стандарт ТП (ООО Цитрус/Ярцево)', balloonContentBody: '215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 22а,', balloonContentFooter: '13:41' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark6); var myPlacemark7 = new ymaps.Placemark([55.0489, 32.7233], { iconContent: '7 - ООО Тимур', balloonContentHeader: '7 - Стандарт ТП (ООО Тимур)', balloonContentBody: '215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 40,', balloonContentFooter: '13:48' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark7); var myPlacemark8 = new ymaps.Placemark([55.0487, 32.7279], { iconContent: '8 - ОООСолнечное', balloonContentHeader: '8 - Стандарт ТП (ОООСолнечное)', balloonContentBody: '215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр, д. 21б,', balloonContentFooter: '14:00' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark8); var myPlacemark9 = new ymaps.Placemark([55.0501, 32.7309], { iconContent: '9 - ООО Ритм', balloonContentHeader: '9 - Стандарт ТП (ООО Ритм)', balloonContentBody: '215805, Россия, Смоленская обл., Ярцево, ул. Металлургов пр,', balloonContentFooter: '14:24' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark9); var myPlacemark10 = new ymaps.Placemark([55.0519, 32.7317], { iconContent: '10 - ООО Рябинушка', balloonContentHeader: '10 - Стандарт ТП (ООО Рябинушка)', balloonContentBody: '215805, Россия, Смоленская обл., Ярцево, ул. Строителей ул., д. 6,', balloonContentFooter: '14:41' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark10); var myPlacemark11 = new ymaps.Placemark([55.0443, 32.7318], { iconContent: '11 - ООО Тимур', balloonContentHeader: '11 - Стандарт ТП (ООО Тимур)', balloonContentBody: '215800, Россия, Смоленская обл., Ярцево, ул. Автозаводская ул, д. 4,', balloonContentFooter: '15:19' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark11); var myPlacemark12 = new ymaps.Placemark([55.0402, 32.727], { iconContent: '12 - ООО Уралочка', balloonContentHeader: '12 - Стандарт ТП (ООО Уралочка)', balloonContentBody: '215800, Россия, Смоленская обл., Ярцево, ул. Студенческая ул, д. 13,', balloonContentFooter: '15:35' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark12); var myPlacemark13 = new ymaps.Placemark([55.044, 32.7245], { iconContent: '13 - ООО Луч', balloonContentHeader: '13 - Стандарт ТП (ООО Луч)', balloonContentBody: '215800, Россия, Смоленская обл., Ярцево, ул. Энтузиастов ул, д. 36,', balloonContentFooter: '15:45' }, { preset: 'twirl#blueStretchyIcon' }); myMap.geoObjects.add(myPlacemark13); // Создание экземпляра элемента управления myMap.controls.add(new ymaps.control.ZoomControl()); // Обращение к конструктору класса элемента // управления по ключу myMap.controls.add('typeSelector'); myMap.setBounds([[54.8898,32.433], [55.0529,32.7318]], {});
for (var item in destinations) { // Используем замыкание, чтобы работать с конкретным свойством объекта (function (title, geoPoint) { // Создаем ссылку, обернутую в тег <p> $("<li><a href=\"javascrtipt:void(0)\">" + item + "</a></li>").find('a').bind('click', function () { // Подчеркиваем все ссылки menuContainer.find('a').css('text-decoration', 'underline'); // Кроме той, на которую щелкнули $(this).css('text-decoration', 'none');
// Перемещаем карту с эффектом "полёта" myMap.panTo(geoPoint, {flying: true,duration: 2000}); return false; }).end().appendTo(menuContainer); })(item, destinations[item]) } } </script> </head>
<body> <h2>Перемещение карты</h2> <ol id="mapMenu"></ol> <div id="map" style="width:679px;height:483px"></div> </body>
</html>
|
Если этот код сохранить в html файл, а потом открыть в браузере, то всё прекрасно работает  А вот если данный код попробовать отобразить на форме в WebBrowser'е Код | webBrowser1.Navigate(SavedHTMLFilePath);
|
, то тут появляется странная ошибка: Браузер ругается из-за ошибки скрипта. Лезу в Debug, ставлю BreakPoint, смотрю, что происходит сразу же после навигации( webBrowser1.Navigate(SavedHTMLFilePath)). Оказывается, что WebBrowser пытается отобразить не весь код страницы, а лишь половину (или около того), а остальное обрезает. Неужели есть какое-то ограничение на количество символов в коде? Или, быть может, действительно имеет место ошибка в скрипте? Если так, то почему страница прекрасно и без ошибок отображается в Chrom/Opera? Help!!! Уже второй день голову ломаю, ни как не найду решения проблемы Помимо метода Navigate, так же пробовал задавать текст документа: Код | webBrowser1.DocumentText = HTMLText;
|
И использовать Stream: Код | byte[] byteArray = Encoding.UTF8.GetBytes( HTMLText); MemoryStream stream = new MemoryStream( byteArray ); webBrowser1.DocumentStream = stream;
|
Результат один и тот же - обрезание
|