Dhanish Balloo Ответов: 1

Отображение местоположения на карте с помощью javascript


Привет,

У меня есть приложение, которое фиксирует местоположение планшета каждый установленный интервал времени и сохраняет их в базе данных.
Затем я написал простой javascript-скрипт для отображения этих мест на карте и отслеживания маршрута планшета.

Однако, помимо отображения соответствующего маршрута планшета, он также отображает альтернативные маршруты и прямую линию от начала до конца.

Ниже приведен мой javascript-код.

Любая помощь будет очень кстати.

Что я уже пробовал:

var markers = [<br />
					{<br />
						"title": '16:58',<br />
						"lat": '-20.1672799707871',<br />
						"lng": '57.5069032768888',<br />
						"description": '16:58'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:00',<br />
						"lat": '-20.170670813731',<br />
						"lng": '57.5032840805832',<br />
						"description": '17:00'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:01',<br />
						"lat": '-20.1712602810727',<br />
						"lng": '57.502503950733',<br />
						"description": '17:01'<br />
					}<br />
				,	<br />
					{<br />
						"title": '17:04',<br />
						"lat": '-20.166955925865',<br />
						"lng": '57.4892648490453',<br />
						"description": '17:04'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:07',<br />
						"lat": '-20.1761991610139',<br />
						"lng": '57.4822988090064',<br />
						"description": '17:07'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:10',<br />
						"lat": '-20.1961753165077',<br />
						"lng": '57.4824656045157',<br />
						"description": '17:10'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:13',<br />
						"lat": '-20.220309405427',<br />
						"lng": '57.487469732469',<br />
						"description": '17:13'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:16',<br />
						"lat": '-20.2342861943874',<br />
						"lng": '57.4996038055266',<br />
						"description": '17:16'<br />
					}<br />
				,	<br />
					{<br />
						"title": '17:19',<br />
						"lat": '-20.2419951166671',<br />
						"lng": '57.4924547310887',<br />
						"description": '17:19'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:22',<br />
						"lat": '-20.2418197976697',<br />
						"lng": '57.4838445649936',<br />
						"description": '17:22'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:25',<br />
						"lat": '-20.2417927882899',<br />
						"lng": '57.4821667460937',<br />
						"description": '17:25'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:28',<br />
						"lat": '-20.244868944177',<br />
						"lng": '57.4761929726994',<br />
						"description": '17:28'<br />
					}<br />
				,	<br />
					{<br />
						"title": '17:31',<br />
						"lat": '-20.2494147017248',<br />
						"lng": '57.4751336596163',<br />
						"description": '17:31'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:34',<br />
						"lat": '-20.2529453707358',<br />
						"lng": '57.4698643969492',<br />
						"description": '17:34'<br />
					}<br />
				,<br />
					{<br />
						"title": '17:37',<br />
						"lat": '-20.2515653985995',<br />
						"lng": '57.4694827601669',<br />
						"description": '17:37'<br />
					}<br />
			];<br />
			<br />
			window.onload = function () {<br />
				var mapOptions = {<br />
					center: new google.maps.LatLng(markers[0].lat, markers[0].lng),<br />
					zoom: 10,<br />
					mapTypeId: google.maps.MapTypeId.ROADMAP<br />
				};<br />
				<br />
				var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);<br />
				var infoWindow = new google.maps.InfoWindow();<br />
				var lat_lng = new Array();<br />
				var latlngbounds = new google.maps.LatLngBounds();<br />
				<br />
				for (i = 0; i < markers.length; i++) {<br />
					var data = markers[i]<br />
					var myLatlng = new google.maps.LatLng(data.lat, data.lng);<br />
					<br />
					lat_lng.push(myLatlng);<br />
					<br />
					var marker = new google.maps.Marker({<br />
						position: myLatlng,<br />
						map: map,<br />
						title: data.title<br />
					});<br />
					latlngbounds.extend(marker.position);<br />
					(function (marker, data) {<br />
						google.maps.event.addListener(marker, "click", function (e) {<br />
							infoWindow.setContent(data.description);<br />
							infoWindow.open(map, marker);<br />
						});<br />
					})(marker, data);<br />
				}<br />
				<br />
				map.setCenter(latlngbounds.getCenter());<br />
				map.fitBounds(latlngbounds);<br />
		 <br />
				//***********ROUTING****************//<br />
		 <br />
				//Initialize the Path Array<br />
				var path = new google.maps.MVCArray();<br />
		 <br />
				//Initialize the Direction Service<br />
				var service = new google.maps.DirectionsService();<br />
		 <br />
				//Set the Path Stroke Color<br />
				var poly = new google.maps.Polyline({ map: map, strokeColor: '#4986E7' });<br />
		 <br />
				//Loop and Draw Path Route between the Points on MAP<br />
				for (var i = 0; i < lat_lng.length; i++) {<br />
					if ((i + 1) < lat_lng.length) {<br />
						var src = lat_lng[i];<br />
						var des = lat_lng[i + 1];<br />
						<br />
						path.push(src);<br />
						poly.setPath(path);<br />
						<br />
						service.route({<br />
							origin: src,<br />
							destination: des,<br />
							travelMode: google.maps.DirectionsTravelMode.DRIVING<br />
						}, function (result, status) {<br />
							if (status == google.maps.DirectionsStatus.OK) {<br />
								for (var i = 0, len = result.routes[0].overview_path.length; i < len; i++) {<br />
									path.push(result.routes[0].overview_path[i]);<br />
								}<br />
							}<br />
						});<br />
					}<br />
				}<br />
			}

F-ES Sitecore

В чем вопрос?

Dhanish Balloo

вместо того чтобы возвращать один путь из точки А В точку Z, проходя через точки В, С, D, ...
Он возвращает несколько путей

1 Ответов

Рейтинг:
7

Peter Leow

Проверить это: Геолокация HTML5[^]


Dhanish Balloo

Получение текущего местоположения не является проблемой, и отображение местоположения на карте также мне удалось сделать просто отлично.
Однако по сравнению с сайтом, который вы запросили, у меня есть более 1 местоположения, которое будет отображаться на одной карте, и линия, проведенная для отслеживания пути