1

我正在我的项目中集成 MapMyIndi​​a ( https://www.mapmyindia.com/api/ )。我在引导模式中显示此地图。当我打开模式时,地图未完全加载,但如果我打开开发人员工具(控制台 - 按 F12),它正在工作。

帮我解决这个问题

在此处输入图像描述

检查元素后 在此处输入图像描述

关闭模态并再次打开后,它工作正常。 在此处输入图像描述

我的代码如下

var start_end_markersList = new Array();
var advicemarkersList = [];
var via_points = "";
var map;
var full_path = window.location.origin;
var mapViaPoints = "";

    if (map == undefined || map == null)
                        map = new MapmyIndia.Map('map-container',
                            {
                                zoomControl: true,
                                hybrid: true,
                                traffic: true
                            });

                    get_route_result();

                    function get_route_result() {
                        remove_start_end_markersList();
                        remove_advice_marker();

                        var via_arr = '';
                        var start_points = latitude; //document.getElementById('start').value;/***get start points**/
                        var destination_points = longtitude; //document.getElementById('destination').value;/**get destination points**/
                        via_points = mapViaPoints; //document.getElementById('via').value;/**get via points**/

                        if (via_points) {
                            var v = via_points.split('|');
                            for (var i = 0; i < v.length; i++) {
                                var v_ar = v[i].split(',');
                                via_arr += ";" + v_ar[1] + "," + v_ar[0];
                            }

                        }
                        var advices_o = true;  //document.getElementById('advices_o').value;/**get advices option**/
                        var alternatives_o = true; //document.getElementById('alternatives_o').value;/**get alternatives option**/
                        var avoids = ''; //$('#avoids').val();

                        var eta = ""; try { eta = document.getElementById('eta').value; } catch (e) { }
                        var rtype = 0; // document.getElementById('rtype').value;
                        var rtype_payload = "&rtype=" + rtype;
                        var start_points_array = start_points.split(",");
                        var destination_points_array = destination_points.split(",");

                        var api_name = "route_adv";  //$("#api_name").val();
                        var api_call = api_name + "/driving/";

                        var rgn = 'ind';
                        rtype_payload = "";

                        var route_api_url_with_param = route_api_url + api_call + start_points_array[1] + "," + start_points_array[0] + via_arr + ";" + destination_points_array[1] + "," + destination_points_array[0] + "?alternatives=" + alternatives_o + rtype_payload + "&geometries=polyline&overview=" + (eta == 1 ? "simplified" : "full") + "&exclude=" + avoids + "&steps=" + advices_o + "&region=" + rgn;

                        show_markers("start", start_points_array);/*********show start points marker********/
                        show_markers("destination", destination_points_array); /*********show destination points marker********/

                        mapmyindia_fit_markers_into_bound(start_points_array, destination_points_array);

                        var encode = btoa(route_api_url_with_param);
                        getUrlResult(encode);
                    }
4

2 回答 2

1

使用 map.invalidateSize(); 打开引导模式后

于 2019-10-16T11:11:23.550 回答
0

这段代码对我有用。

setTimeout(function () {
        map.invalidateSize();
     }, 400);
于 2019-10-16T12:38:29.887 回答