0

首先,我是法语,我的英语很差......

我的网站上会有 2 张样式地图:我的代码是:

    <script type="text/javascript">

        // Detection du navigateur utilisé, ainsi que l'affichage  
        <?php include("browser.js");?>

        // Début de la création de la map
        function initialiser() {

            <?php include("cartes.js");?>

            var Night = new google.maps.StyledMapType(Nuit,{name: "Nuit"});
            var Map = new google.maps.StyledMapType(Plan,{name: "Plan"});


            // Propriétés des identificateurs prédéfinis permettant de définir des options d'affichage
            var options = {
                center: new google.maps.LatLng(49.894524, 2.30195),
                zoom: 13,
                mapTypeControlOptions: {
                    mapTypeIds: [google.maps.MapTypeId.Plan, 'map_style1', 'map_style2', ]
                }
            };

            // Constructeur de la carte dans lequel la carte doit s'afficher ainsi que les options
            var carte = new google.maps.Map(document.getElementById("carte"), options);

            carte.mapTypes.set('map_style2', Night);
            carte.setMapTypeId('map_style2');               
            carte.mapTypes.set('map_style1', Map);
            carte.setMapTypeId('map_style1');


            <?php include("geolocalisation.js");?>

            <?php include("voitures.js");?>

        }

但问题是 2 风格的地图在那里,但不是一直在工作......也许这是这个 api 的限制?

4

1 回答 1

0

最有可能的问题在这里:

mapTypeControlOptions: {
    mapTypeIds: [google.maps.MapTypeId.Plan, 'map_style1', 'map_style2', ]
}

已知的 MapTypeId 有:HYBRID、ROADMAP、SATELLITE 和 TERRAIN。你有Plan.

您可以将其更改为:

    mapTypeControlOptions: {
        mapTypeIds: [
            google.maps.MapTypeId.ROADMAP, 'map_style1', 'map_style2'
        ]
    }

因此,假设您在某处定义了样式Nuit,并且Plan,例如:

var Nuit = [{ ...features style... }];
var Plan = [{ ...features style... }];

我会将您的 init 函数更改为:

function initialiser() {

    <?php include("cartes.js");?>

    var nightMap = new google.maps.StyledMapType(Nuit,{name: "Nuit"});
    var planMap = new google.maps.StyledMapType(Plan,{name: "Plan"});

    var options = {
        center: new google.maps.LatLng(49.894524, 2.30195),
        zoom: 13,
        mapTypeControlOptions: {
            mapTypeIds: [
                google.maps.MapTypeId.ROADMAP, 'map_style1', 'map_style2'
            ]
        }
    };

    var carte = new google.maps.Map(document.getElementById("carte"), options);

    carte.mapTypes.set('map_style2', nightMap);
    carte.setMapTypeId('map_style2');

    carte.mapTypes.set('map_style1', planMap);
    carte.setMapTypeId('map_style1');

    <?php include("geolocalisation.js");?>
    ...
于 2014-05-20T07:44:29.000 回答