我是 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/