Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Twebbrowser обновление некоторых данных в загруженной страничке. / 5 сообщений из 5, страница 1 из 1
04.10.2017, 12:53:39
    #39530710
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Twebbrowser обновление некоторых данных в загруженной страничке.
Добрый день!

Загрузил в webbrowser файл в котором карта yandex и метка, определяемая gps координатами планшета, скажем х,у.
Как можно сделать, чтобы в webbrowser через минуту поменялись координаты х, у метки, но карта сама не перерисовывалась,
а только менялась положение метки?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
.....
s1:=
'<!DOCTYPE html> '+
'<html>   '+
'<head>   '+
'	<title>Карта экипажей</title> '+
'    <meta http-equiv="x-ua-compatible" content="ie=edge"> '+
'	<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script> '+
'<body>  '+
'<div id="map" style="position:absolute;width: 100%; height: 100%;background:black;"></div>'+
'<script>                                                    '+
'ymaps.ready(init);                                            '+
'var myMap, myCollectionE, myCollectionP, myCollectionO;       '+
'function init(){                                                '+
'	myMap = new ymaps.Map("map", {                                 '+
'		center: [43.2199387972459, 76.8524551391602],                '+
'		zoom: 12                                                     '+
'	});                                                            '+
'	myCollectionE = new ymaps.GeoObjectCollection();               '+
'	myCollectionO = new ymaps.GeoObjectCollection();               '+
'	myMap.geoObjects.add(myCollectionE);                           '+
'	myMap.geoObjects.add(myCollectionO);                           '+
' var myPlacemark = new ymaps.Placemark(['+StringReplace(floattostr(x),',','.',[rfReplaceAll, rfIgnoreCase])+', '+StringReplace(floattostr(y),',','.',[rfReplaceAll, rfIgnoreCase])+'], { '+
'				balloonContent: '''+lblCar.Text+''',  '+
'				hintContent: '''+lblCar.Text+ ''''+
'			},   '+
'			{     '+
'				preset:"islands#DotIconWithCaption", '+
'				iconColor:''red''   '+
'			} '+
'			); '+
'		myPlacemark.name = '''+lblCar.Text+'''; '+
'		myPlacemark.description ='''+lblCar.Text+'''; '+
'		myCollectionE.add(myPlacemark);        '+
'}                                                               '+
'</script>                                                       '+
'</html>'

;
Memo5.Lines.Clear;
Memo5.Lines.Add(s1);
Memo5.Lines.SaveToFile('//sdcard//Download//f5.html');
WebBrowser2.Navigate('file:'+'//sdcard//Download//f5.html');
...
Рейтинг: 0 / 0
04.10.2017, 14:13:04
    #39530754
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Twebbrowser обновление некоторых данных в загруженной страничке.
roma1975,

По идее - добавить к документу скрипт, который переинициирует myPlaceMark с новыми координатами и заменяет в myCollectionE старый элемент на новый. А потом вызвать этот скрипт с новыми координатами. Как добавлять скрипты и вызывать их знаешь?
...
Рейтинг: 0 / 0
04.10.2017, 14:58:02
    #39530807
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Twebbrowser обновление некоторых данных в загруженной страничке.
Как скрипты вызывать знаю мало. А можно на данном конкретном примере - это показать?
...
Рейтинг: 0 / 0
04.10.2017, 17:15:39
    #39530966
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Twebbrowser обновление некоторых данных в загруженной страничке.
roma1975,

Конкретно с yandex картами я не работал, но вот простой пример, как внедрить в документ скрипт и его вызвать.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TForm1.Button1Click(Sender: TObject);
var
  Doc2     : IHtmlDocument2;
  Script   : IHtmlDOMNode;
  HTMLWindow: IHTMLWindow2;
begin
 Doc2 := Webbrowser1.Document as IHtmlDocument2;
 if Assigned(Doc2.body) then
  begin
   Script := Doc2.createElement('script') as IHTMLDOMNode;
   (Script as IHTMLScriptElement).text := 'function helloWorld() { alert("hello world!") }';
   (Doc2.body as IHtmlDomNode).appendChild(Script);   // добавили свой скрипт в загруженный документ
   HTMLWindow := Doc2.parentWindow;
   if Assigned(HTMLWindow) then
    HTMLWindow.execScript('helloWorld()', 'JavaScript');  // вызвали добавленный скрипт
  end;
end;
...
Рейтинг: 0 / 0
06.10.2017, 11:20:17
    #39532041
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Twebbrowser обновление некоторых данных в загруженной страничке.
Спасибо. Попробуем скриптом сделать.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Twebbrowser обновление некоторых данных в загруженной страничке. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]