|
Метки на Google картах | ☑ | ||
---|---|---|---|---|
0
FOFA
05.11.13
✎
17:12
|
Добрый день.
Есть вот такой фрагмент кода для вывода меток на Google карту ТекстСкрипта = "data.addRows(" + Строка(ТаблицаОбъектовДляВывода.Количество()) + ");"; Сч = 0; Для Каждого ТекСтрока Из ТаблицаОбъектовДляВывода Цикл ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 0, " +СтрЗаменить(Строка(ТекСтрока.Широта),",",".") + ");"; ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 1, " +СтрЗаменить(Строка(ТекСтрока.Долгота),",",".") + ");"; ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 2, '" +Строка(ТекСтрока.Наименование) + " "+Символы.ПС+ + Строка(ТекСтрока.Город) + " " + Строка(ТекСтрока.Адрес) + " " + " " + "');"; Сч = Сч + 1; КонецЦикла; СтраницаХТМЛ = "<html> | <head> | <script src=""http://maps.google.com/maps?file=api&v=2&key=" + APIГугла + """ type=""text/javascript""></script> | <script type=""text/javascript"" src=""http://www.google.com/jsapi""></script> | </head> | | <body> | <div id=""map_div"" style=""width: 950px; height: 650px""></div> | <script type=""text/javascript""> | | google.load(""visualization"", ""1"", {packages:[""map""]}); | google.setOnLoadCallback(drawMap); | function checkIfGoogleLoad() { | if(!google.visualization) setTimeout(checkIfGoogleLoad, 1000); | else drawMap(); | } | function drawMap() { | var data = new google.visualization.DataTable(); | data.addColumn('number', 'Lat'); | data.addColumn('number', 'Lon'); | data.addColumn('string', 'Name');" + ТекстСкрипта + " | var map = new google.visualization.Map(document.getElementById('map_div')); | map.draw(data, {showTip: true, mapType: 'normal'}); | } | checkIfGoogleLoad(); | </script> | </body> |</html>"; Подскажите, как поменять код, что бы в марке можно было отображать название маркера, его описание, картинку и Web ссылку. |
|||
1
DGorgoN
05.11.13
✎
17:17
|
data.addColumn('string', 'Name');" + ТекстСкрипта + " - тут не?
|
|||
2
FOFA
05.11.13
✎
17:22
|
Именно тут...Вот только как выразить ссылку и картинку я не знаю
|
|||
3
Smit1C
05.11.13
✎
17:27
|
там вроде надо настраивать стиль отображения этих меток, поищи в google map api
|
|||
4
Smit1C
05.11.13
✎
17:29
|
||||
5
FOFA
05.11.13
✎
17:40
|
(4) именно так...
Осталось код найти... |
|||
6
Smit1C
05.11.13
✎
17:50
|
(5) ctrl+u
|
|||
7
FOFA
05.11.13
✎
18:03
|
Не могу понять, как их код связать с моим(
function makeMarker(location) { var markerOptions = {map: map, position: new google.maps.LatLng(location.lat, location.lng)}; var marker = new google.maps.Marker(markerOptions); markers.push(marker); var content = '<div style="text-align: center; font-size:14px;"><center><b>Diamantino, Brazil</b></center><img width="240" height="180" src="http://mw2.google.com/mw-panoramio/photos/small/7253919.jpg"/><div style="margin: auto; text-align: right; width: 240px;" class="linkbutton"><a href="http://www.panoramio.com/user/279908">Edson Walter Cavalari</a></div><div class="linkbutton"><a href="http://www.panoramio.com/photo/7253919" target="_blank">See more photos at Panoramio.com</a></div><br/><div class="linkbutton"><a href="http://www.google.com/search?q=site:wikipedia.org+Diamantino,Brazil&btnI=I\'m+Feeling+Lucky" target="_blank">Read more about this location</a></div><div class="linkbutton"><a href="javascript:void(0)" id="zoomLink">Zoom in to this location</a></div></div>'; google.maps.event.addListener(marker, 'click', function(e) { var infobox = new SmartInfoWindow({position: marker.getPosition(), map: map, content: content}); }); } |
|||
8
FOFA
05.11.13
✎
19:25
|
Я использую систему комманд
var map = new google.visualization.Map(document.getElementById('map_div')); | map.draw(data, {showTip: true, mapType: 'normal'}); В примере (7) идет var marker = new google.maps.Marker(markerOptions); markers.push(marker); Наверное map.draw не поддерживает функционал картинок в маркерах и ссылок? |
|||
9
FOFA
06.11.13
✎
16:44
|
Разобрался
Процедура Построитькарту() СсылкаНаБазу = ПолучитьНавигационнуюСсылкуИнформационнойБазы(); APIГугла = Константы.КлючКарта.Получить(); ТаблицаОбъектовДляВывода = Новый ТаблицаЗначений; ТаблицаОбъектовДляВывода.Колонки.Добавить("Наименование",Новый ОписаниеТипов("Строка")); ТаблицаОбъектовДляВывода.Колонки.Добавить("Город",Новый ОписаниеТипов("Строка")); ТаблицаОбъектовДляВывода.Колонки.Добавить("Адрес",Новый ОписаниеТипов("Строка")); ТаблицаОбъектовДляВывода.Колонки.Добавить("Широта",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,6))); ТаблицаОбъектовДляВывода.Колонки.Добавить("Долгота",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,6))); Если ЗначениеЗаполнено(Страна) Тогда Места = Справочники.Места.Выбрать(,Страна); Пока Места.Следующий() Цикл если Места.Широта <> 0 и Места.ПометкаУдаления = Ложь Тогда НоваяСтрока = ТаблицаОбъектовДляВывода.Добавить(); НоваяСтрока.Наименование = "<h1 id=""firstHeading"" class=""firstHeading"">"+СокрЛП(Места.Наименование)+"</h1>"; Если ЗначениеЗаполнено(Места.ФайлКартинки) Тогда Места.ФайлКартинки.Получить().Сохранить("C:\temp\"+СокрЛП(Места.Наименование)+".jpg"); //НоваяСтрока.Город = "<img width=""200"" height=""150"" src="""+СокрЛП(Места.Картинка)+"""+/>"+"</h1>"; НоваяСтрока.Город = "<img width=""200"" height=""150"" src="""+СокрЛП("C:\temp\"+СокрЛП(Места.Наименование)+".jpg")+"""+/>"+"</h1>"; Иначе НоваяСтрока.Город = ""; КонецЕслИ; Попытка НоваяСтрока.Адрес = СокрЛП(Строка(Места.ОписаниеМеста.Получить().ПолучитьТекст())); НоваяСтрока.Адрес = СтрЗаменить(НоваяСтрока.Адрес,Символы.ПС,""); Исключение НоваяСтрока.Адрес = ""; КонецПопытки; НоваяСтрока.Широта = Места.Широта; НоваяСтрока.Долгота = Места.Долгота; КонецЕслИ; КонецЦикла; Иначе Места = Справочники.Места.Выбрать(); Пока Места.Следующий() Цикл если Места.Широта <> 0 и Места.ПометкаУдаления = Ложь Тогда НоваяСтрока = ТаблицаОбъектовДляВывода.Добавить(); НоваяСтрока.Наименование = "<h1 id=""firstHeading"" class=""firstHeading"">"+СокрЛП(Места.Наименование)+"</h1>"; Попытка Места.ФайлКартинки.Получить().Записать("d:\"+СокрЛП(Прав(Места.Код,6))+".bmp"); НоваяСтрока.Город = "<img width=""200"" height=""150"" src="""+СокрЛП(Места.Картинка)+"""+/>"+"</h1>"; //НоваяСтрока.Город = "<img width=""200"" height=""150"" src="""+СокрЛП("d:\"+СокрЛП(Прав(Места.Код,6))+".bmp")+"""+/>"+"</h1>"; //"<img width="200" height="150" src="http://www.europetourism.su/wp-content/uploads/2011/12/Akveduk_v_Skope13-294x194.jpg"+/></h1>" Исключение НоваяСтрока.Город = ""; КонецПопытки; Попытка НоваяСтрока.Адрес = СокрЛП(Строка(Места.ОписаниеМеста.Получить().ПолучитьТекст())); НоваяСтрока.Адрес = СтрЗаменить(НоваяСтрока.Адрес,Символы.ПС,""); Исключение НоваяСтрока.Адрес = ""; КонецПопытки; НоваяСтрока.Широта = Места.Широта; НоваяСтрока.Долгота = Места.Долгота; КонецЕслИ; КонецЦикла; КонецЕслИ; ТекстСкрипта = "data.addRows(" + Строка(ТаблицаОбъектовДляВывода.Количество()) + ");"; Сч = 0; Для Каждого ТекСтрока Из ТаблицаОбъектовДляВывода Цикл ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 0, " +СтрЗаменить(Строка(ТекСтрока.Широта),",",".") + ");"; ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 1, " +СтрЗаменить(Строка(ТекСтрока.Долгота),",",".") + ");"; ТекстСкрипта = ТекстСкрипта + " data.setCell(" + Строка(Сч) + ", 2, '" +Строка(ТекСтрока.Наименование) + " " + Строка(ТекСтрока.Город) + " " + Строка(ТекСтрока.Адрес) + " " + " " + "');"; Сч = Сч + 1; КонецЦикла; СтраницаХТМЛ = "<html> | <head> | <script src=""http://maps.google.com/maps?file=api&v=2&key=" + APIГугла + """ type=""text/javascript""></script> | <script type=""text/javascript"" src=""http://www.google.com/jsapi""></script> | </head> | | <body> | <div id=""map_div"" style=""width: 100%; height: 100%""></div> | <script type=""text/javascript""> | | google.load(""visualization"", ""1"", {packages:[""map""]}); | google.setOnLoadCallback(drawMap); | function checkIfGoogleLoad() { | if(!google.visualization) setTimeout(checkIfGoogleLoad, 1000); | else drawMap(); | } | function drawMap() { | var data = new google.visualization.DataTable(); | data.addColumn('number', 'Lat'); | data.addColumn('number', 'Lon'); | data.addColumn('string', 'Name');" + ТекстСкрипта + " | var map = new google.visualization.Map(document.getElementById('map_div')); | map.draw(data, {showTip: true, mapType: 'normal'}); | } |function centerMap() { | map.setCenter(markers[markers.length-1].getPosition()); |} | checkIfGoogleLoad(); | </script> | </body> |</html>"; //,zoomLevel: 10 КонецПроцедуры |
|||
10
FOFA
06.11.13
✎
16:46
|
Но остался еще один вопрос...
У меня картинки хранется в хранилище значений, для загрузки их на гугл карту я использую следующее: Места.ФайлКартинки.Получить().Записать("d:\"+СокрЛП(Прав(Места.Код,6))+".bmp"); НоваяСтрока.Город = "<img width=""200"" height=""150"" src="""+СокрЛП("d:\"+СокрЛП(Прав(Места.Код,6))+".bmp")+"""+/>"+"</h1>"; Данная схема не работает... Но если я подставляю в данную схему любой файл с диска, созданный не 1с предприятием, то все работает |
|||
11
FOFA
06.11.13
✎
16:47
|
Получается html код не хочет принимать картинки, созданные 1с предприятием(
|
|||
12
kokamoonga
06.11.13
✎
17:01
|
(10) разумеется данная схема не работает. Пространство имен кто будет указывать?
"file:///d:/"+СокрЛП(Прав(Места.Код,6))+".bmp" как-то так наверно. Но вообще это дурь конечно. Правильнее поднять nginx например и отдавать картинки с веб-сервера, а не как локальные ресурсы. |
|||
13
FOFA
06.11.13
✎
17:04
|
Но картинка, созданная не в 1с, работает в таком исполнении
Вот пример скрипта <img width="200" height="150" src="c:\temp\000000023.jpg"+/></h1> Если картинка, созданная из хранилища, то не работает, если просто взятая из сети, то все нормально |
|||
14
kokamoonga
06.11.13
✎
17:08
|
(13) значит путь неправильный.
|
|||
15
kokamoonga
06.11.13
✎
17:10
|
(14)+ или нет прав на папку.
или на файл |
|||
16
FOFA
06.11.13
✎
17:17
|
Та нет..На данные файлы стоит полный доступ..А папка одинакова для двух примеров
|
|||
17
kokamoonga
06.11.13
✎
17:20
|
(16) а просто через адресную строку браузера файл открывается?
|
|||
18
FOFA
06.11.13
✎
17:23
|
Да и тот и тот
|
|||
19
FOFA
06.11.13
✎
17:28
|
Попробывал в Paint изменить файл с jpeg на bmp, тоже его не читает
|
|||
20
kokamoonga
06.11.13
✎
17:32
|
(19) что и в браузере не открывается?
|
|||
21
FOFA
06.11.13
✎
17:36
|
В браузере оба примера открывается,
Но когда картинку грузит скрипт, то не видит, хотя стандартную(не созданную в 1с) видит |
|||
22
FOFA
06.11.13
✎
17:37
|
Размеры картинок почти одинаковые
|
|||
23
FOFA
06.11.13
✎
17:42
|
||||
24
kokamoonga
06.11.13
✎
17:50
|
(23) а отсуда скрипт ее видит?http://fs54.www.ex.ua/show/330199615458/80919635/80919635.jpg?1600
|
|||
25
kokamoonga
06.11.13
✎
17:51
|
(24) + отсюда*
|
|||
26
FOFA
06.11.13
✎
21:15
|
Она просто лежит на диске Д, первая и вторая..Скрипт пишется для локальных целей
|
|||
27
kokamoonga
06.11.13
✎
21:50
|
(26) я понимаю что она лежит на диске D. Но по твоей логике получается, что проблема в самой картинке, что конечно маловероятно, поэтому я и предлагаю проверить будет ли с ней проблема когда она лежит на нормальном веб-сервере.
Чтобы решить проблему, ее надо сначала локализовать. А тут этим и не пахнет. |
|||
28
FOFA
06.11.13
✎
22:00
|
Загрузил на radikal.cc
http://s017.radikal.ru/i424/1311/ae/c1833513d3a6.jpg Проблемы нету. Но мне нужно подгружать картинки с локальной папки на компьютере( |
|||
29
kokamoonga
06.11.13
✎
22:03
|
(28) ну поскольку та же картинка нормально грузится извне - делаем вывод. Проблема либо в пути, либо в правах. Поскольку статически прописанный путь работает нормально скорее всего проблема в коде:
Места.ФайлКартинки.Получить().Записать("d:\"+СокрЛП(Прав(Места.Код,6))+".bmp"); НоваяСтрока.Город = "<img width=""200"" height=""150"" src="""+СокрЛП("d:\"+СокрЛП(Прав(Места.Код,6))+".bmp")+"""+/>"+"</h1>"; Тут точно правильный путь формируется? |
|||
30
kokamoonga
06.11.13
✎
22:04
|
(29) + кстати, </h1> там зачем?
|
|||
31
FOFA
06.11.13
✎
22:12
|
(12)
file:///d:/"+СокрЛП(Прав(Места.Код,6))+".bmp" как-то так наверно Вот так помогло..Вот я и бестолочь) Просто другая картинка работала и без этого, вот это и смутило |
|||
32
FOFA
06.11.13
✎
22:13
|
kokamoonga спасибо большое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |