0

我正在使用谷歌地图。我有一个工作正常的简单示例。这是代码

function initialize() {
        if (GBrowserIsCompatible()) {

var map = new GMap2(document.getElementById('map_canvas'));
            map.setCenter(new GLatLng(1, 103.849), 5);
            map.addOverlay(new ELabel(new GLatLng(1, 103.849), 1, 'style11'));  
            map.addOverlay(new ELabel(new GLatLng(1, 103.980), 2, 'style11'));
            map.setUIToDefault();}}

上面的这个函数运行良好。现在我想让它动态化。比如设置中心我想传递变量,就像我放置这个我想使用这个 var center="1, 103.849" 和我放置这一行map.addOverlay(new ELabel(new GLatLng(1, 103.849), 1, 'style11')); 我想在变量中使用这一行......这是我的代码不起作用。有人可以纠正我吗?

function initialize() {
        if (GBrowserIsCompatible()) {
            var center = "1, 103.849";
            var Locations = "map.addOverlay(new ELabel(new GLatLng(1, 103.849), 1, 'style11'));map.addOverlay(new ELabel(new GLatLng(1, 103.980), 2, 'style11'));";

            var map = new GMap2(document.getElementById('map_canvas'));
            map.setCenter(new GLatLng(center), 5);
             +Locations +

            map.setUIToDefault();
        }
    }
4

1 回答 1

1

GLatLng 将两个数字作为参数,而不是字符串。你需要做

var centerlat = 1;
var centerlng = 103.849;
map.setCenter(new GLatLng(centerlat,centerlng), 5);

我不确定+Locations+设计的目的是什么。这是一个语法错误。只需使用map.addOverlay()您之前的线路即可。

map.addOverlay(new ELabel(new GLatLng(centerlat,centerlng), 2, 'style11'));

请注意,第 2 版已被弃用,并且寿命不长。使用 API 的第 3 版(相当不同)。

于 2012-04-30T11:24:03.463 回答