Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 或者解决方案@Eddy:“我从来没有想到我可以在函数之外定义一个变量”,但你已经在用osMap这样做了!是的,当全局变量的数量变大时,创建名称空间非常方便。像var myMapVars={};函数init(){myMapVars.mappoverlay=n_Javascript_Html - Fatal编程技术网

Javascript 或者解决方案@Eddy:“我从来没有想到我可以在函数之外定义一个变量”,但你已经在用osMap这样做了!是的,当全局变量的数量变大时,创建名称空间非常方便。像var myMapVars={};函数init(){myMapVars.mappoverlay=n

Javascript 或者解决方案@Eddy:“我从来没有想到我可以在函数之外定义一个变量”,但你已经在用osMap这样做了!是的,当全局变量的数量变大时,创建名称空间非常方便。像var myMapVars={};函数init(){myMapVars.mappoverlay=n,javascript,html,Javascript,Html,或者解决方案@Eddy:“我从来没有想到我可以在函数之外定义一个变量”,但你已经在用osMap这样做了!是的,当全局变量的数量变大时,创建名称空间非常方便。像var myMapVars={};函数init(){myMapVars.mappoverlay=new OpenSpace.Layer.mappoverlay(“logo”);}}。在代码中进一步使用myMapVars.mapOverlay。太好了,是的,我想这一定很简单,但我使用的javascript不够,所以我从来没有想到我可以在函数之


或者解决方案@Eddy:“我从来没有想到我可以在函数之外定义一个变量”,但你已经在用
osMap
这样做了!是的,当全局变量的数量变大时,创建名称空间非常方便。像
var myMapVars={};函数init(){myMapVars.mappoverlay=new OpenSpace.Layer.mappoverlay(“logo”);}}
。在代码中进一步使用
myMapVars.mapOverlay
。太好了,是的,我想这一定很简单,但我使用的javascript不够,所以我从来没有想到我可以在函数之外定义一个变量!谢谢你的解决方案@Eddy:“我从来没有想到我可以在函数之外定义一个变量”,但你已经在用
osMap
这样做了!
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Testing OS OpenSpace</title>

<script type="text/javascript" 
src="http://openspace.ordnancesurvey.co.uk/osmapapi/openspace.js?key=BA08531D8339984EE0405F0AC86026A9";>
</script>

<script type="text/javascript">

// Define the osMap variable
var osMap;

// This function creates the map and is called by the div in the HTML
function init()
  {
  // Create new map  
  osMap = new OpenSpace.Map('map');     
  // Define image overlay with URL  
  var mapOverlay = new OpenSpace.Layer.MapOverlay("logo");
  mapOverlay.setHTML('<img src="Image1.jpg" style="width: 100%; height: 100%; opacity: 0.8;"/>');
  mapOverlay.setPosition(new OpenLayers.LonLat(391500, 805000));
  mapOverlay.setSize(new OpenLayers.Size(3700, 4000));
  osMap.addLayer(mapOverlay);
  // Set map centre in National Grid Eastings and Northings and select zoom level 4
  osMap.setCenter(new OpenSpace.MapPoint(393000, 807000), 6);
  // Set the mapOverlay as a document property, so that it can be changed.
  }

// This function changes the image, or I'd like it to.
function ChangeImage()
  {
    // Get the choice from the dropdown. this bit works.
    var Choice_ = document.getElementById('Choice');
    var Choice = Choice_.options[Choice_.selectedIndex].value;
    // Edit the mapOverlay, not sure how to achieve this part.
    mapOverlay.setHTML('<img src="$Choice" style="width: 100%; height: 100%; opacity: 0.8;"/>');
  }

</script>

<style>
  html, body {height: 100%;}
  #map {width: 700px; height: 500px; border:1px solid black;}
</style>
</head>  

<body onload="init()" id='Body'>

<!-- The div below holds the map -->
<div id="map"></div>

<!-- Now some options for which datasets to display. -->
<td><select id='Choice' onchange="ChangeImage()">
    <option value="Image1.jpg" selected="selected">1</option>
    <option value="Image2.jpg">2</option>
    </select>
</td>

</body>
</html>
<script>
  var mapOverlay;
  function init() 
  {
    //stuff
    mapOverlay = new OpenSpace.Layer.MapOverlay("logo");
    //more stuff
  }
  function ChangeImage()
  {
    //stuff
    mapOverlay.setHTML('<img src="$Choice" style="width: 100%; height: 100%; opacity: 0.8;"/>');
  }
</script>