3

私は eval() 代替を探しています..

通常の Google マップ、API v3 を生成します。

    // define options
    var mapOptions = {
      zoom: 18,
      center: new google.maps.LatLng(-33.890542, 151.274856),
      mapTypeId: eval(maptype["map"]),
      panControl: true,
      zoomControl: true,
      mapTypeControl: true,
      scaleControl: true
    };

    // create map
    map = new google.maps.Map(document.getElementById('map_test),mapOptions);

これは正常に機能しますが、eval() は避けたいと思います。maptype は、JSON を使用して php で定義されます。

echo 'maptype = '.json_encode($options).';';

evalの代替手段はありますか?

更新: 完全なソースコード:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.7&sensor=false&language=de"></script>
</head>

<body>


<script>
maptype = {"map":"google.maps.MapTypeId.SATELLITE"};</script>

<script>
function Map()
{
var mapOptions = {zoom: 18, center: new google.maps.LatLng(-33.890542, 151.274856), mapTypeId: eval(maptype["map"])};

// create map
map = new google.maps.Map(document.getElementById('map'),mapOptions);
}
</script>

<div id="map" style="width:1200px; height:800px"></div>
<script> jQuery(document).ready(function ($) {Map();});</script>

</body>
</html>

結果: エラーなし、マップなし、灰色の背景のみ。

4

1 に答える 1

2

オブジェクトであり、のキーがあるとeval()仮定すると、その周りの呼び出しを削除するだけで機能するはずです。ngggOptionsmap

于 2013-02-26T18:31:04.947 に答える