Это мой упрощенный код. Я хотел бы соединить координаты линией, а также добавить маркеры к точкам с номерами (по порядку). А также, если это возможно: добавьте расстояние на линию между точками. (У меня есть рассчитанные расстояния, но я не могу добавить их на карту)
$result=$db->query(Query the rows);
//GET coordinates from database, and add it to the array:
if($result->num_rows>0){
$maproute=array();
while($row=$result->fetch_assoc()){
array_push($maproute,'{lat: '.$track['latitude'].', lng: '.$track['longtitude'].'}');
}
//Create javascript version of the array (readable)
$list='['.implode(',<br>',$maproute).']';
print_r('
<div style="width=100%;height:400px;" id="map"></div>
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById(\'map\'), {
zoom: 3,
center: {lat: 0, lng: -180},
mapTypeId: \'terrain\'
});
var flightPlanCoordinates = '.$list.';
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: \'#FF0000\',
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=MYAPIKEYWASHERE&callback=initMap">
</script>
');
}else{
echo 'No track information yet';
}
Список $ возвращает эту строку после взрыва:
$list= [{lat: 43.6043, lng: 1.4437},
{lat: 47.67371, lng: 18.8291931},
{lat: 47.44996, lng: 19.07}]
Проблема в том, что где-то в части javascript, более того в части var flightPlanCoordinates = '.$list.';
.