Получение координат от mysql, а затем преобразование их в путь карт Google - PullRequest
0 голосов
/ 06 марта 2020

Это мой упрощенный код. Я хотел бы соединить координаты линией, а также добавить маркеры к точкам с номерами (по порядку). А также, если это возможно: добавьте расстояние на линию между точками. (У меня есть рассчитанные расстояния, но я не могу добавить их на карту)

$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.';.

...