Javascript : Using Switch to set variables values for the function

标签 javascript

我是 Javascript 的新手,但我需要它才能在我的项目中使用 googlemaps,我正在尝试为每个特定城市设置纬度、经度和 map 缩放的值,因此我从隐藏的表单输入中获取城市名称并使用Switch切换城市名称。

cityDiv = document.getElementById('id_city');
cityDiv.value = idCity ;

switch (idCity)
{
case "city1":
    var map_long = 31.37667;
    var map_lat = 31.04306;
    var map_zoom = 3;
    break
case "city2":
    var map_long = 31.33333;
    var map_lat = 29.85;
    var map_zoom = 7;
    break
default:
    var map_long = 31.37667;
    var map_lat = 31.04306;
    var map_zoom = 3;
}

function onLoad() {
    map = new GMap(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.centerAndZoom(new GLatLng(map_lat,map_long) , map_zoom);

    GEvent.addListener(map, 'click', function(overlay, point) { 
        if (prev_pin) { 
            map.removeOverlay(prev_pin); 
            prev_pin = null; 
        } 
        //var yPoint = new YGeoPoint({{ place.latitude }},{{ place.longitude }});

        if (point) { 
            pin = new GMarker(point); 
            map.addOverlay(pin); 
            prev_pin = pin; 

            latDiv = document.getElementById('id_latitude');
            lngDiv = document.getElementById('id_longitude'); 
            lngDiv.value = point.x;
            latDiv.value = point.y; 
        } 
    });

}

很抱歉这个新手问题。

最好的问候。

根据 geowa4 的评论编辑:

问题是变量从未设置 :( 那么我的代码有什么问题?!我将“cityDiv.value = idCity ;”更改为“var idCity = cityDiv.value ;”很好,但这次 map 拒绝加载

最佳答案

试试下面的代码:

mapInfo = 
{
  "city1":
  {
    "long": 31.37667,
    "lat": 31.04306,
    "zoom": 3
  },
  "city2":
  {
    "long": 31.33333,
    "lat": 29.85,
    "zoom": 7
  }
};

function onLoad() {
    map = new GMap(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    var cityDiv = document.getElementById('id_city');
    var idCity = cityDiv.value || "city1";
    map.centerAndZoom(new GLatLng(mapInfo[idCity].lat,mapInfo[idCity].long) , mapInfo[idCity].zoom);

    GEvent.addListener(map, 'click', function(overlay, point) { 
        if (prev_pin) { 
                map.removeOverlay(prev_pin); 
                prev_pin = null; 
        } 
        //var yPoint = new YGeoPoint({{ place.latitude }},{{ place.longitude }});

        if (point) { 
                pin = new GMarker(point); 
                map.addOverlay(pin); 
                prev_pin = pin; 

                latDiv = document.getElementById('id_latitude');
                lngDiv = document.getElementById('id_longitude'); 
                lngDiv.value = point.x;
                latDiv.value = point.y; 
        } 
    });

}

关于Javascript : Using Switch to set variables values for the function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229428/

相关文章:

javascript - FireFox 插件-sdk 页面工作人员正则表达式

javascript - 将多个变量 .onload 设置为相同的值

javascript - 为 iframe 弹出窗口设置 cookie 以使其保持关闭

java - Java 和 JavaScript 之间的 PubSub?

javascript - 如何在javascript中只读取小数点前的数字?

javascript - jQuery focus() 有时在 IE8 中不起作用

javascript - 如何按月、日和年对 <li> 进行排序

javascript - 如何使用 Jquery 创建自动完成功能?

javascript - Jquery .load 导致按钮点击问题

javascript - 似乎无法从自定义插件关闭 tinymce 4 弹出窗口