Как создать разные маршруты для разных пользователей на Google Map Javascript - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел бы нарисовать разные маршруты для разных пользователей на карте Google, но в моем случае он показывает только последний.Код идет ниже: я новичок в карте Google.Извините за ошибку.

function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 8, center: {lat: 48.8566, lng: 2.3522}, scrollwheel: true }); }

function getUserData() {        
    var obj = [{"email_id":"user1","latlong":[{"lat":48.834159,"lng":2.333102}, {"lat":48.834611,"lng":2.337048},{"lat": 48.836306,"lng": 2.337820}]},{"email_id": "user2",latlong: [{"lat": 48.833538,"lng": 2.331625},{"lat": 48.828848,"lng": 2.327507},{"lat": 48.831899,"lng": 2.325191}]}]        

    for (i in obj) {
        var temp1 = JSON.stringify(obj[i]);
        var obj1 = JSON.parse(temp1); 

        var temp2 = JSON.stringify(obj1.latlong);
        var path = JSON.parse(temp2);
        rederGoogleMap(obj1, path);

    }

    function rederGoogleMap(obj1, path){    
        var marker;         
        var map = new google.maps.Map(document.getElementById('map'), {
            zoom : 16,
            center : path[path.length - 1],
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scrollwheel: true
        });

        var infowindow = new google.maps.InfoWindow();

        /***** create marker for starting position *****/
        marker = new google.maps.Marker({
            position: path[0],
            map: map,
            title: 'Start'
        });

        google.maps.event.addListener(marker, 'click', (function (marker, k) {
            return function () {
                infowindow.setContent(obj1.email_id);
                infowindow.open(map, marker);
            }
        })(marker));

        /***** create marker for ending position *****/
        marker = new google.maps.Marker({
            position: path[path.length - 1],
            map: map,
            title: 'End'
        });

        google.maps.event.addListener(marker, 'click', (function (marker, k) {
            return function () {
                infowindow.setContent(obj1.email_id);
                infowindow.open(map, marker);
            }
        })(marker));

        var elevator = new google.maps.ElevationService;
        displayPathElevation(path, elevator, map);
    }

    function displayPathElevation(path, elevator, map) {
        new google.maps.Polyline({
            path : path,
            strokeColor : '#0000CC',
            strokeOpacity : 0.4,
            map : map
        });
    }
}

см. Карту Google здесь

Показывает только последний маршрут, т. Е. User2.и это удаляет 1-й маршрут.Но хочу показать оба маршрута для разных пользователей.Как я должен это сделать.Пожалуйста, помогите кому-нибудь.

1 Ответ

0 голосов
/ 25 февраля 2019

в функции rederGoogleMap вы создаете новый объект каждый раз =>

var map = new google.maps.Map(document.getElementById('map'), { ...}

это ваша ошибка.

Вам необходимо создать new google.maps.Map в глобальном или передаваемом параметре.

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