Загрузите Google Маркеры, используя MYSQL - PullRequest
0 голосов
/ 01 января 2019

Я посмотрел другие примеры этого вопроса в стеке, но они либо используют JQUERY, либо загружают с использованием XML и т. Д., Который НЕ используется для заполнения моей карты.

Карта отлично работает, но маркер не работает, когда я пытаюсь ссылаться на переменную PHP как LatLng.Я пытался повторить переменную LatLng и использовать Heredocs, но ничего не работает.

<? php
    // I MADE QUERIES HERE AND ADDED THEM INTO "$coords"


echo<<<_

    <!DOCTYPE html>
    <html>
    </style>
    <body>
    <div class="Banner">
        <div class="TitleText">Sonic Strains &copy;</div>
    </div>
    <div class="login">Logout</div>
    <div class="gallery" id="container">
        <div class="map" id="mapInsert"></div>
        <div class="navButton">Start Nav</div><div class="orderButton">Order Details</div>
        <div class="abortButton">Abort</div><div class="confirmButton">Confirm</div><div class="disclaimer"></div>
    </div>
    <script>
          function initMap() {  
            navigator.geolocation.getCurrentPosition(function(position) {
                var initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
                var Map = new google.maps.Map(document.getElementById('mapInsert'));
                Map.setCenter(initialLocation);
                Map.setZoom(8);
            }, function(positionError) {
                //---------- User denied geolocation prompt - default to Chicago
                Map.setCenter(new google.maps.LatLng(39.8097343, -98.5556199));
                Map.setZoom(5);
            },{enableHighAccuracy:true, timeout: 3000, maximumAge:1000});}
                //MAKE ANOTHER MARKER FOR THE CLIENT LOCATION
                var userLocation = {lat:$coords[user_lat], lng:$coords[user_long]};
                var marker = new google.maps.Marker({
                    position:userLocation, 
                    map:Map,
                    draggable:false, 
                    clickable:false
                });
                marker.setMap(Map);}
    </script>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=[API_KEY]&callback=initMap" 
        async defer></script>
    </body>
    </html>


_;

?>

Ошибка -

"SyntaxError: неожиданный токен <" </p>

Здесь я пытаюсь ссылатьсяпозиция маркера PHP LatLng, почему он не позволяет мне ссылаться на PHP?

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Проблема заключалась в том, что объявление маркера находилось вне initMap ().Когда я переместил маркер внутри главной функции, он работал

0 голосов
/ 01 января 2019

Проблема в открывающем теге.Вы используете недопустимый тег:

<? php

(обратите внимание на пробел между вопросом и ключевым словом PHP).

Вам необходимо изменить его на правильный открывающий тег PHP, например:

<?php

Кроме того, в коде вы должны повторить переменные, потому что вы ничего не делаете с ним.

var userLocation = {lat:<?php echo $coords[user_lat]; ?>, lng: <?php echo $coords[user_long]; ?>};

((EDIT))

Хорошо, делая новую редакцию кода, я вижу по крайней мере одну проблему:

Вы создаете POI с этим синтаксисом:

            var userLocation = {lat:$coords[user_lat], lng:$coords[user_long]};
            var marker = new google.maps.Marker({
                position:userLocation, 
                map:Map,
                draggable:false, 
                clickable:false
            });

Проверкав моем собственном коде есть функциональный код добавления poi:

    newmarker = new google.maps.Marker({
        map: map,
        key: marker[0],
        name: marker[1],
        lat: marker[3],
        lon: marker[4],
        content: marker[9],
        position: new google.maps.LatLng(marker[3], marker[4]),
        icon: icon
    });

Возможно, большая часть кода (ключ, имя и т. д.) являются необязательными значениями, но вы добавляете массив к значению позиции,а не значение LatLng.

Если этот код не работает, пожалуйста, проверьте ваш HTML-код напрямую (не на PHP), потому что в коде может быть что-то странное, блокирующее процесс загрузки (например, phpнеправильно заполняет значения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...