поле HTML документа и гугл API

1. Glagoleva 27.02.23 14:59 Сейчас в теме
Все было ок, но сегодня перестали работать гугл карты (маршруты). google API перестали поддерживать IE11 и все пошло по 3.14... Как задать макет макет который грузится в поле HTML документа, чтобы он открылся в тонком клиенте?

ЗЫ В браузере google hrome табличный документ отображается нормально и все работает!

ЗЫ 1C написала что она перешла с 8.3.14 на Web kit, но как увязывать? API google поддерживают: Мазилу, гугл хром, Eddge, но про Web kit там нет ничего.

Х
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Glagoleva 27.02.23 15:47 Сейчас в теме
Если сохранить в файл html код документа и поробывать открыть IE11, то Ваш браузер не поддерживается Google Maps JavaScript API. Выберите другой.
3. Sashares 33 27.02.23 16:08 Сейчас в теме
(2)Приведите пример с демонстрацией проблемы.
4. Glagoleva 27.02.23 16:20 Сейчас в теме
Что привести? Не будет отображаться код ниже в поле HTML документа и в IE будет ошибка IE11, то Ваш браузер не поддерживается Google Maps JavaScript API. Выберите другой. Но в гугл хроме все будет работать


<!DO CTYPE html>
<ht ml>
<head>
<met a name="viewport" content="initial-scale=1.0, user-scalable=no" />
<met a http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<met a http-equiv="X-UA-Compatible" content="IE=11">
<st yle type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0px; padding: 0px }
  #map { height: 100% }
</style>
<sc ript type="text/javascript" src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m­arkerclusterer.js"></sc ript>
<sc ript type="text/javascript" src="https://google.com/maps/api/js?key={{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}&callback=initialize&language=ru" async defer></sc ript>

<sc ript type="text/javascript">

//rAАГP
//  var debugger = document.querySelector('#debugDiv');
//  debugger.style.display = 'block';
//	if (typeof console  != "undefined") 
//	    if (typeof console.log != 'undefined')
//	        console.olog = console.log;
//	    else
//	        console.olog = function() {};
//
//	console.log = function() {
//	    console.olog.apply(console, arguments);
//	    debugger.innerHTML += '<div style="padding: 2px 0;">' + Array.prototype.join.call(arguments, ' ') + '</div>';
//	};
//	console.error = console.debug = console.info =  console.log;

	var latlng;
	var markers = {};
	var markers2 = [];
	var myMap;
	var index = 1;
	var directionsDisplay;
	var directionsService;
	var infoWindow;
	var trafficLayer;
	var markerCluster;
	var mcOptions;
	var trafficOn = false;
	var pointArray = [];
	var polygons = [];
	var pos = [47.297996,39.650118];//[55.75, 37.62]; //®-» .» - [55.75, 37.62]

	function initialize() {
		directionsDisplay = new google.maps.DirectionsRenderer();
		directionsDisplay2 = new google.maps.DirectionsRenderer();
		directionsService = new google.maps.DirectionsService();
		infoWindow = new google.maps.InfoWindow();
		trafficLayer = new google.maps.TrafficLayer();

		latlng = new google.maps.LatLng(pos[0], pos[1]);
		var myOptions = {
			zoom: 12,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP,
			disableDoubleClickZoom: true,
			panControl: true,
			zoomControl: true,
			mapTypeControl: false,
			scaleControl: true,
			streetViewControl: true,
			overviewMapControl: true
		};
		myMap = new google.maps.Map(document.getElementById("map"),
			myOptions);

		google.maps.event.addListener(myMap, 'dblclick', function(event) {
			infoWindow.close();
			addMarker(event.latLng);
		});
		
		markerCluster = new MarkerClusterer(myMap, [], {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
	};

	//Ў«я 0p . я ,qЌ
	function addMarker(location) {
		document.getElementById('CoordX').value = location.lat();
		document.getElementById('CoordY').value = location.lng();

		marker = new google.maps.Marker({
			position: location,
			map: myMap,
			title: '®ч' + index
		});
		infoWindow.setContent(marker.title);
		infoWindow.open(myMap, marker);

		google.maps.event.addListener(marker, 'click', function() {
			var mark = this;
			var latLng = mark.getPosition();
			infoWindow.setContent(mark.title);
			infoWindow.open(myMap, mark);
		});

		markers.push(marker);
		index++;

		//m ца{ая pb  1э
		document.getElementById('map').click();
	}

	function calcRoute(options) {
		//тя"l а1  p эх 0%ў `чhя
		///Ўу `4, LatLng
		var option1 = options[0]; //эьэ к

		var option2 = options[1]; //.f·э кJ		var option3 = options[2]; //­накJ		var start = new google.maps.LatLng(option1[0], option1[1]); //pй
		var end = new google.maps.LatLng(option3[0], option3[1]); //±dэ
		//«%2g­ы2кJ		var waypts = [];
		if (option2.length > 0) {
			for (var i = 0, l = option2.length; i < l; i++) {
				temp = option2[i];
				Qcoord = new google.maps.LatLng(temp[0], temp[1])
				waypts.push({
					location: Qcoord,
					stopover: true
				});
			}
		}
		//return;
		var request = {
			origin: start,
			destination: end,
			waypoints: waypts,
			optimizeWaypoints: true,
			travelMode: google.maps.TravelMode.DRIVING
		};
		directionsService.route(request, function(response, status) {
			if (status == google.maps.DirectionsStatus.OK) {
				//directionsDisplay.setMap(myMap);
				//directionsDisplay.setDirections(response);

				var total = 0;
				var totalTime = 0;
				var SpisokTochek = "";
				
				var myroute = response.routes[0];

				for (i = 0; i < myroute.legs.length; i++) {
					total += myroute.legs[i].distance.value;
					totalTime += myroute.legs[i].duration.value;  
					SpisokTochek += myroute.legs[i].end_location + ';';				
					}
				
				total = total / 1000;
				
				document.getElementById('RouteInfo').value = "" + total;
				document.getElementById('RouteInfoTime').value = "" + totalTime;
				document.getElementById('RouteSpisokTochek').value = SpisokTochek;
				document.getElementById('waypoint_order').value = myroute.waypoint_order;
				
				//m ца{ая pb  1э
				var evt = document.createEventObject();
				document.body.fireEvent('ondatasetcomplete', evt);
			} else {
				alert(status);
			}
		});
	}
	
	function calcRouteoptimizeFalse(options, options2) {
		//тя"l а1  p эх 0%ў `чhя
		///Ўу `4, LatLng
		var option1 = options[0]; //эьэ к

		var option2 = options[1]; //.f·э кJ		var option3 = options[2]; //­накJ		var start = new google.maps.LatLng(option1[0], option1[1]); //pй
		var end = new google.maps.LatLng(option3[0], option3[1]); //±dэ
		//«%2g­ы2кJ		var waypts = [];
		if (option2.length > 0) {
			for (var i = 0, l = option2.length; i < l; i++) {
				temp = option2[i];
				Qcoord = new google.maps.LatLng(temp[0], temp[1])
				waypts.push({
					location: Qcoord,
					stopover: true
				});
			}
		}
		
		var request = {
			origin: start,
			destination: end,
			waypoints: waypts,
			optimizeWaypoints: false,
			travelMode: google.maps.TravelMode.DRIVING
		};
		directionsService.route(request, function(response, status) {
			if (status == google.maps.DirectionsStatus.OK) {
				directionsDisplay.setMap(myMap);
				directionsDisplay.setDirections(response);
				var markerCounter = 1; //rч 0pЌ
			    // ЎЁ1Ё 0pы
			    var route = response.routes[0];
			    // 0p эа ЁmН
			    addMarker(route.legs[0].start_location, markerCounter++);
			    // 0pы  eа0ші, «юча­Ќ
			    var lim = route.legs.length;
				if (options2 != 0 ) {lim = lim -1}    
			    for (var i = 0; i < lim; i++) {
			      addMarker(route.legs[i].end_location, markerCounter++);
				}

			} else {
				alert(status);
			}
		});

	    if (options2 != 0 ) {
			var option1 = options2[0]; //эьэ к

			var option2 = options2[1]; //.f·э кJ			var option3 = options2[2]; //­накJ			var start = new google.maps.LatLng(option1[0], option1[1]); //pй
			var end = new google.maps.LatLng(option3[0], option3[1]); //±dэ
			//«%2g­ы2кJ			var waypts = [];
			if (option2.length > 0) {
				for (var i = 0, l = option2.length; i < l; i++) {
					temp = option2[i];
					Qcoord = new google.maps.LatLng(temp[0], temp[1])
					waypts.push({
						location: Qcoord,
						stopover: true
					});
				}
			}
			
			var request = {
				origin: start,
				destination: end,
				waypoints: waypts,
				optimizeWaypoints: false,
				travelMode: google.maps.TravelMode.DRIVING
			};
			directionsService.route(request, function(response, status) {
				if (status == google.maps.DirectionsStatus.OK) {
					directionsDisplay2.setMap(myMap);
					directionsDisplay2.setDirections(response);
					var markerCounter = 27; //rч 0pЌ
				    // ЎЁ1Ё 0pы
				    var route = response.routes[0];
				    // 0p эа ЁmН
				    addMarker(route.legs[0].start_location, markerCounter++);
				    // 0pы  eа0ші, «юча­Ќ
				    for (var i = 0; i < route.legs.length; i++) {
				      addMarker(route.legs[i].end_location, markerCounter++);
					}

				} else {
					alert(status);
				}
			});
		}		
	}
	
	/** дr 0p иўы-% i */
	function addMarker(position, i) {
	  return new google.maps.Marker({
	    icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + i + '|FF0000|000000',
	    //					icon: {url: "http://maps.google.com/mapfiles/marker_purple.png",
		//					scaledSize: new google.maps.Size(24, 48)},
		//title: i,
		//zIndex: 1, 
		//labelContent: i,
	    position: position,
	    map: myMap
	  });
	}
	

	function Reset() {
		directionsDisplay.setMap(null);
		for (var i = 0; i <100; i++) {
			markers2[i].setMap(null);
		}
		markers = {};
		index = 1;
		markerCluster.clearMarkers();

		for (var i = 0; i < polygons.length; i++) {
			polygons[i].setMap(null);
		}
		polygons = [];

		for (var i = 0; i < pointArray.length; i++) {
			pointArray[i].setMap(null);
		}
		pointArray = [];
		
	}

	function ResetRoute() {
		directionsDisplay.setMap(null);

		for (var i = 0; i < polygons.length; i++) {
			polygons[i].setMap(null);
		}
		polygons = [];

		for (var i = 0; i < pointArray.length; i++) {
			pointArray[i].setMap(null);
		}
		pointArray = [];
		
	}


	function ResetMarker(Ind){
	 directionsDisplay.setMap(null);
      markers[Ind].setMap(null);
	}
	
	function ChangeMarker(Ind, numColor){
	
	const urlOrigin = 'https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|';
	
 	markers[Ind].setIcon(urlOrigin + numColor);
			 
	}




	function FindAdres(Adres, nomTsveta, titleAdress) {
		var geocoder = new google.maps.Geocoder();
		geocoder.geocode({
			'address': Adres
		}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				latlng = results[0].geometry.location;
				myMap.panTo(latlng);

	         if (nomTsveta == 1) {
				marker = new google.maps.Marker({
					map: myMap,
					icon: {url: "http://maps.google.com/mapfiles/marker_orange.png",
							scaledSize: new google.maps.Size(12, 24)},					
					position: latlng,
					title: "" + titleAdress + " " + Adres
				});
			 };

	         if (nomTsveta == 2) {
				marker = new google.maps.Marker({
					map: myMap,
					icon: {url: "http://maps.google.com/mapfiles/marker_yellow.png",
							scaledSize: new google.maps.Size(24, 24)},					
					position: latlng,
					title: "" + titleAdress + " " + Adres
				});
			 };

	         if (nomTsveta == 3) {
				marker = new google.maps.Marker({
					map: myMap,
					icon: {url: "http://maps.google.com/mapfiles/marker_purple.png",
							scaledSize: new google.maps.Size(24, 24)},					
					position: latlng,
					title: "" + titleAdress + " " + Adres
				});
			 };

	         if (nomTsveta == 4) {
				marker = new google.maps.Marker({
					map: myMap,
					icon: {url: "http://maps.google.com/mapfiles/marker_grey.png",
							scaledSize: new google.maps.Size(24, 24)},					
					position: latlng,
					title: "" + titleAdress + " " + Adres
				});
			 };

	         if (nomTsveta == 5) {
				marker = new google.maps.Marker({
					map: myMap,
					icon: {url: "http://maps.google.com/mapfiles/marker_black.png",
							scaledSize: new google.maps.Size(24, 24)},					
					position: latlng,
					title: "" + titleAdress + " " + Adres
				});
			 };
	        
			 document.getElementById('retunFeErr').value = 'ok'; 			 
			 marker.addListener('click', function() {
			    var mark = this;
				document.getElementById('CoordX').value = mark.getPosition().lat();
				document.getElementById('CoordY').value = mark.getPosition().lng();
				document.getElementById('NomMarkera').value = mark.title;
			  });	
			                                               			   
				markers[titleAdress] = marker;
				markers2[titleAdress] = marker;

				infoWindow.setContent(marker.title);
				infoWindow.open(myMap, marker);
			} 
			else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
				document.getElementById('retunFeErr').value = 'OVER_QUERY_LIMIT'; 
				//alert("А%e n¤.-: " +Adres+" " + status);				
			}

			else {
				document.getElementById('retunFeErr').value = "NOT_FOUND"; 
				//alert("hчо ээm " +Adres+" " + status);
				
			}
		});
	}



	function ReverseSearchAdres(CoordX, CoordY, Adres, Lab) {
		latlng = new google.maps.LatLng(CoordX, CoordY);
		myMap.panTo(latlng);

		var marker = new google.maps.Marker({
			map: myMap,
			//position: latlng,
			//animation: google.maps.Animation.BOUNCE,
			//title: Adres
			
			icon: {url: "http://maps.google.com/mapfiles/marker_orange.png",
					scaledSize: new google.maps.Size(24,24)},					
			position: latlng,
			title: false,
			label: "" + Adres + Lab,
			//draggable:true			
		});

			 marker.addListener('click', function() {
			    var mark = this;
				document.getElementById('CoordX').value = this.getPosition().lat();
				document.getElementById('CoordY').value = mark.getPosition().lng();
				document.getElementById('NomMarkera').value = Adres;
			  });
			  
	
			                                               			   
				markers[Adres] = marker;
				markers2[Adres] = marker;

				infoWindow.setContent(marker.title);
				infoWindow.open(myMap, marker);		
	}

	function addToPointArray(CoordX, CoordY, ID, Text) {
		var latLng = new google.maps.LatLng(CoordX, CoordY);
		var point = new google.maps.Marker({
			'position': latLng
		});
		pointArray.push(point);
	}

	function drawCluster() {
		// Add a marker clusterer to manage the pointArray.
		markerCluster.addMarkers(pointArray);

	}

	function createPolygon(ArrayPoint, Name, color) {
		//дl 1 ®- pш`nі«ьэJ		var paths = [];
		for (var i = 0, l = ArrayPoint.length; i < l; i++) {
			var temp = ArrayPoint[i];
			Qcoord = new google.maps.LatLng(temp[0], temp[1])
			paths.push(Qcoord);
		};

		// n  nі«ьэ
		myPolygon = new google.maps.Polygon({
			paths: paths,
			strokeColor: "#0000FF",
			strokeOpacity: 0.6,
			strokeWeight: 5,
			fillColor: color
		});
		myPolygon.setMap(myMap);
		polygons.push(myPolygon);
	}

	function myMapCenter(){
		myMap.setZoom(6);
		latlng = new google.maps.LatLng(47.297996, 39.650118);
		myMap.setCenter(latlng);
	}

	function WebClientClick() {
		//и  p и¬ ®-¬ `ч/k**" . ээ`%w»-`®-Ќ
		document.getElementById('CoordX').value = "0";
		document.getElementById('CoordY').value = "0";

		var WebClientOperation = document.getElementById("WebClientOperation").value;
		switch (WebClientOperation) {
			case "0": // эо эkl
				var a = 1;
			default: // /  ээцЌ
				eval(WebClientOperation);
		}
		document.getElementById('WebClientOperation').value = "0";
	}
</sc ript>
</head>

<body>
	<div id="debugDiv" style="display:none;position: absolute;z-index:999;top:0;right:0;width: 400px;background: rgb(255,255,255);max-height:300px;overflow:auto;padding: 5px;" >Debugger:</div>
    <div id="map" style="width:100%; height:100%"></div>
    <input type="hidden" id="CoordX" name="CoordX" value="0"></input>
    <input type="hidden" id="CoordY" name="CoordY" value="0"></input>
    <input type="hidden" id="retunFeErr" name="retunFeErr" value="_________"></input>    
    <input type="hidden" id="StrAdress" name="StrAdress" value="r #кѕ</input>    
    <input type="hidden" id="NomMarkera" name="NomMarkera" value="0"></input>
    <input type="hidden" id="RouteInfo" name="RouteInfo" value=""></input>
	<input type="hidden" id="RouteInfoTime" name="RouteInfoTime" value=""></input>
	<input type="hidden" id="RouteSpisokTochek" name="RouteSpisokTochek" value=""></input>
	<input type="hidden" id="waypoint_order" name="waypoint_order" value=""></input>
	
    <input type="hidden" id="WebClientOperation" name="WebClientOperation" value="0"></input>
    <input type="hidden" id="WebClient" name="WebClient" on click="WebClientClick();"></input>
</body>

</html>
Показать
5. пользователь 27.02.23 21:39
Сообщение было скрыто модератором.
...
6. user708544_bigburodion 28.02.23 10:57 Сейчас в теме
Нам помогло указание версии API.
Применительно к вашему примеру строка <sc ript type="text/javascript" src="https://google.com/maps/api/js?key={{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}&callback=initialize&language=ru" async defer></sc ript> требует дописки фразы "&v=quarterly". Или как вариант можно указать непосредственно номер версии, на сегодняшний день самая свежая это "&v=3.50".
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот