Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Напирмер найпростейший текс страници для карт гугл виглядит так:
<HT ML><HEAD>
<MET A http-equiv=Content-Type content="text/html; charset=utf-8"></META>
<MET A content="initial-scale=1.0, user-scalable=no" name=viewport></META>
<ST YLE type=text/css>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</STYLE>
</HEAD>
<BODY on load=initialize()>
<DIV id=map_canvas style="WIDTH: 100%; float: left; HEIGHT: 100%;overflow: auto"></DIV>
<SC RIPT src="http://maps.google.com/maps/api/js?sensor=false&" type="text/javascript" async="async" defer="defer"></SC RIPT>
<SC RIPT type="text/javascript" async="async" defer="defer">
var map;
var directionsDisplay;
function initialize() {
var myLatlng = new google.maps.LatLng(56,37);
var myOptions = {
zoom: 2,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: myLatlng,
disableDoubleClickZoom: true
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
</SC RIPT>
</BODY></HTML>
<HT ML><HEAD>
<MET A http-equiv=Content-Type content="text/html; charset=utf-8"></META>
<MET A content="initial-scale=1.0, user-scalable=no" name=viewport></META>
<ST YLE type=text/css>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</STYLE>
</HEAD>
<BODY on load=initialize()>
<DIV id=map_canvas style="WIDTH: 100%; float: left; HEIGHT: 100%;overflow: auto"></DIV>
<SC RIPT src="http://maps.google.com/maps/api/js?sensor=false&" type="text/javascript" async="async" defer="defer"></SC RIPT>
<SC RIPT type="text/javascript" async="async" defer="defer">
var map;
var directionsDisplay;
function initialize() {
var myLatlng = new google.maps.LatLng(56,37);
var myOptions = {
zoom: 2,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: myLatlng,
disableDoubleClickZoom: true
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
</SC RIPT>
</BODY></HTML>
Точки будем виводить в виде обэкта карт гугл которий називается маркер. Он имеет некоторие свойства. Ми будем использовати некоторие из них. Поетому в текст макета вставлем такие строки:
...
var marker = new google.maps.Marker({
position: new google.maps.LatLng( 56,37),
map: map});
...
var marker = new google.maps.Marker({
position: new google.maps.LatLng( 56,37),
map: map});
Прикрепленные файлы:

Процедура ОтобразитьКартуНажатие(Элемент)
тз=Новый ТаблицаЗначений;
тз.Колонки.Добавить("ТТ");
тз.Колонки.Добавить("Широта");
тз.Колонки.Добавить("Долгота");
нс=тз.Добавить();
нс.ТТ="тт1";
нс.Широта=56.1;
нс.Долгота=37.1;
нс=тз.Добавить();
нс.ТТ="тт2";
нс.Широта=56.5;
нс.Долгота=37.5;
нс=тз.Добавить();
нс.ТТ="тт3";
нс.Широта=56.8;
нс.Долгота=37.8;
Строка="";
Для каждого стр Из тз Цикл
Строка=Строка+"var marker = new google.maps.Marker({position: new google.maps.LatLng("+Формат(стр.Широта,"ЧРД=.; ЧГ=")+","+Формат(стр.Долгота,"ЧРД=.; ЧГ=")+"),map: map});";
КонецЦикла;
тт=ПолучитьМакет("ТекстКарты").ПолучитьТекст();
тт=СтрЗаменить(тт,"[=-парТочкы-=]",Строка);
ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(тт);
КонецПроцедуры
Показать
function initialize() {
var myLatlng = new google.maps.LatLng(56,37);
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: myLatlng,
disableDoubleClickZoom: true
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
[=-парТочкы-=]
}
var myLatlng = new google.maps.LatLng(56,37);
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: myLatlng,
disableDoubleClickZoom: true
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
[=-парТочкы-=]
}
Как изменить цвет маркера я не знаю, но можно вместо маркера подставить свою картинку. Для етого сначало нужно нарисовать картинку в Paint например, а потом написать путь к рисунку в свойствах етого маркера:
Строка=Строка+"var icon='C:/image.png';var marker = new google.maps.Marker({position: new google.maps.LatLng("+Формат(стр.Широта,"ЧРД=.; ЧГ=")+","+Формат(стр.Долгота,"ЧРД=.; ЧГ=")+"),icon: icon,label:'"+стр.ТТ+"',map: map});";
Строка=Строка+"var icon='C:/image.png';var marker = new google.maps.Marker({position: new google.maps.LatLng("+Формат(стр.Широта,"ЧРД=.; ЧГ=")+","+Формат(стр.Долгота,"ЧРД=.; ЧГ=")+"),icon: icon,label:'"+стр.ТТ+"',map: map});";
Прикрепленные файлы:

В макете нужно Добавить обработку собития "onclick", ее можно сфелать в отдельной функции, например так:
function inf(marker,tekst,map){
google.maps.event.addListener(marker, 'click', function ($event)
{
var iw = new google.maps.InfoWindow;
iw.setContent(tekst);
iw.setPosition(marker.position);
iw.open(map);
});
};
function inf(marker,tekst,map){
google.maps.event.addListener(marker, 'click', function ($event)
{
var iw = new google.maps.InfoWindow;
iw.setContent(tekst);
iw.setPosition(marker.position);
iw.open(map);
});
};
Прикрепленные файлы:

Подскажите, подобный код у меня, карта на десктопе работает, на IOS работает, а вот на Android не показывает ничего. Используется мобильная платформа 1С.
Код страницы:
<!DO CTYPE html>
<ht ml><head>
<met a name="viewport" content="initial-scale=1.0, user-scalable=no">
<met a http-equiv="X-UA-Compatible" content="IE=9">
<met a charset="utf-8">
<st yle>
HTML {
HEIGHT: 100%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
BODY {
HEIGHT: 100%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
#map {
HEIGHT: 100%; WIDTH: 100%; FLOAT: left
}
#directions-panel {
margin-top: 20px;
background-color: #FFEE77;
padding: 10px;
}
</style>
<met a name="GENERATOR" content="MSHTML 11.00.9600.18538"><ba se href="/redirect.php?url=djhjb25maWc6Ly8zMjU5N2UyNi02YTI4LTRkZWMtOWE3My0xNTZiN2ZkYzkyYWIvbWRvYmplY3QvaWQxM2Q0YmUxNS0zZTdkLTQ3ZjYtOTBlOS1hNGRjOGE0MjZkNDQvOGViNGZhZDEtMWZhNi00MDNlLTk3MGYtMmMxMmRiYjQzZTIz"></head>
<body on load="initMap()">
<DIV id=map></DIV><div id="directions-panel"></div>
<Sc ript type="text/javascript" async="async" defer="defer">
function initMap() {
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: {lat: 41.85, lng: -87.65}
});
directionsDisplay.setMap(map);
calculateAndDisplayRoute(directionsService, directionsDisplay);
var marker1 = new google.maps.Marker({
position: {lat: 37.771, lng: -122.4471},
map: map,
zIndex: 100,
label: 'Current position'
});
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
var waypts = [];
var checkboxArray = document.getElementById('waypoints');
for (var i = 0; i < checkboxArray.length; i++) {
if (checkboxArray.options[i].selected) {
waypts.push({
location: checkboxArray[i].value,
stopover: true
});
}
}
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('end').value,
waypoints: waypts,
optimizeWaypoints: false,
travelMode: google.maps.TravelMode.DRIVING
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
else {
window.alert('Directions request failed due to ' + status);
}
});
}
</sc ript>
<sc ript src="https://maps.googleapis.com/maps/api/js?key=МойКлюч"
async defer></sc ript>
</body>
</html>
Код страницы:
<!DO CTYPE html>
<ht ml><head>
<met a name="viewport" content="initial-scale=1.0, user-scalable=no">
<met a http-equiv="X-UA-Compatible" content="IE=9">
<met a charset="utf-8">
<st yle>
HTML {
HEIGHT: 100%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
BODY {
HEIGHT: 100%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
#map {
HEIGHT: 100%; WIDTH: 100%; FLOAT: left
}
#directions-panel {
margin-top: 20px;
background-color: #FFEE77;
padding: 10px;
}
</style>
<met a name="GENERATOR" content="MSHTML 11.00.9600.18538"><ba se href="/redirect.php?url=djhjb25maWc6Ly8zMjU5N2UyNi02YTI4LTRkZWMtOWE3My0xNTZiN2ZkYzkyYWIvbWRvYmplY3QvaWQxM2Q0YmUxNS0zZTdkLTQ3ZjYtOTBlOS1hNGRjOGE0MjZkNDQvOGViNGZhZDEtMWZhNi00MDNlLTk3MGYtMmMxMmRiYjQzZTIz"></head>
<body on load="initMap()">
<DIV id=map></DIV><div id="directions-panel"></div>
<Sc ript type="text/javascript" async="async" defer="defer">
function initMap() {
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: {lat: 41.85, lng: -87.65}
});
directionsDisplay.setMap(map);
calculateAndDisplayRoute(directionsService, directionsDisplay);
var marker1 = new google.maps.Marker({
position: {lat: 37.771, lng: -122.4471},
map: map,
zIndex: 100,
label: 'Current position'
});
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
var waypts = [];
var checkboxArray = document.getElementById('waypoints');
for (var i = 0; i < checkboxArray.length; i++) {
if (checkboxArray.options[i].selected) {
waypts.push({
location: checkboxArray[i].value,
stopover: true
});
}
}
directionsService.route({
origin: document.getElementById('start').value,
destination: document.getElementById('end').value,
waypoints: waypts,
optimizeWaypoints: false,
travelMode: google.maps.TravelMode.DRIVING
}, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
else {
window.alert('Directions request failed due to ' + status);
}
});
}
</sc ript>
<sc ript src="https://maps.googleapis.com/maps/api/js?key=МойКлюч"
async defer></sc ript>
</body>
</html>
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот