0

问这个问题我感觉很糟糕。如果我试图做的事情是不可能的,请告知。

我是一名图形/网页设计专业的学生,​​到目前为止只擅长 html。我正在使用谷歌地图组件,并希望使用 API 向导设置地图样式。如下:http: //pastebin.com/YsKbyS58

问题是示例使用静态 html,并且组件基于 php:http: //pastebin.com/XrEMmTVJ

我可以将 JSON 数组注入 PHP 文件吗?语法会是什么样的?

谢谢!

4

2 回答 2

1

用于设置地图样式的 Google 地图语法类似于(使用您的 php 脚本):

// Map creation
        var map = new google.maps.Map(document.getElementById('contentmap_<?php echo $owner; ?>_<?php echo $id; ?>'),
        {
                zoom: <?php echo $this->Params->get("zoom", 0); ?>,
                center: center,
                mapTypeId: google.maps.MapTypeId.<?php echo $this->Params->get("map_type", "ROADMAP"); ?>,
                styles : [
                    {
                     elementType: "geometry",
                     stylers: [
                          { visibility: "on" },
                          { hue: "#ff8800" }
                     ]
                    },{
                     elementType: "labels",
                     stylers: [
                           { hue: "#ffc300" }
                     ]
                    }
                ]
             });
于 2012-06-01T14:49:25.910 回答
0

我的理解是您想将这些样式应用于您的地图?由于您发布的内容实际上只是一个静态对象,因此您可以将其直接插入到地图选项中:

var map = new google.maps.Map(document.getElementById('contentmap_<?php echo $owner; ?>_<?php echo $id; ?>'),
    {
        zoom: <?php echo $this->Params->get("zoom", 0); ?>,
        center: center,
        mapTypeId: google.maps.MapTypeId.<?php echo $this->Params->get("map_type", "ROADMAP"); ?>,
            styles:  [ 
                       { 
                         elementType: "geometry",
                         stylers: [
                           { visibility: "on" },
                           { hue: "#ff8800" }
                         ] 
                       },{ 
                         elementType: "labels",
                         stylers: [
                           { hue: "#ffc300" }
                         ] 
                       } 
                     ]
    });

如果您打算使样式动态化,PHP 标记也可以替换对象内的值styles

于 2012-06-01T14:49:25.053 回答