Google maps api 3 将双地图程序从Google Maps apiV2升级到apiV3

Google maps api 3 将双地图程序从Google Maps apiV2升级到apiV3,google-maps-api-3,Google Maps Api 3,我有一个谷歌地图API V2脚本,允许两个不同大小和缩放级别的地图一起移动,当一个地图被平移时,另一个也会移动以保持相同的中心点。较小的地图在中心有一个Xhair,在平移后返回中心,较大的地图有多个标记 我正在尝试将代码升级到APIV3,但是V3映射没有相互移动,较小的映射Xhair也无法运行。有人能告诉我从API V2升级到API V3的脚本中缺少了什么吗 V2代码: <script type="text/javascript"> //<![CDATA[ if (GBrow

我有一个谷歌地图API V2脚本,允许两个不同大小和缩放级别的地图一起移动,当一个地图被平移时,另一个也会移动以保持相同的中心点。较小的地图在中心有一个Xhair,在平移后返回中心,较大的地图有多个标记

我正在尝试将代码升级到APIV3,但是V3映射没有相互移动,较小的映射Xhair也无法运行。有人能告诉我从API V2升级到API V3的脚本中缺少了什么吗

V2代码:

<script type="text/javascript">
//<![CDATA[

if (GBrowserIsCompatible()) {

  function createMarker(point) {
    map.addOverlay(new GMarker(point));
  }

  // ===== Setup The Maps =====

  // Display the main map, with some controls and set the initial location 
  var map = new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(54.531283,-125.125537), 12);

  // Set up three markers on the main map

  createMarker(new GLatLng(54.207882,-125.661621));
  createMarker(new GLatLng(49.214790,-124.054399));
  createMarker(new GLatLng(49.053632,-122.352859));

  // create the crosshair icon, which will indicate where we are on the minimap
  // Lets not bother with a shadow
  var Icon = new GIcon();
  Icon.image = "xhair.png";
  Icon.iconSize = new GSize(21, 21);
  Icon.shadowSize = new GSize(0,0);
  Icon.iconAnchor = new GPoint(11, 11);
  Icon.infoWindowAnchor = new GPoint(11, 11);
  Icon.infoShadowAnchor = new GPoint(11, 11);

  // Create the minimap
  var minimap = new GMap2(document.getElementById("minimap"));
  minimap.setCenter(new GLatLng(54.531283,-125.125537), 7);

  // Add the crosshair marker at the centre of the minimap and keep a reference to it

  var xhair = new GMarker(minimap.getCenter(), Icon);            
  minimap.addOverlay(xhair);


  // ====== Handle the Map movements ======

  // Variables that log whether we are currently causing the maps to be moved

  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
  // and reposition the crosshair back to the centre
  function Move(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());
  xhair.setPoint(map.getCenter());
  xhair.redraw(true);
}
minimap_moving = false;
  }
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
  // and reposition the crosshair back to the centre
  function MMove(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
  xhair.setPoint(minimap.getCenter());
  xhair.redraw(true);
}
map_moving = false;
  }

  // Listen for when the user moves either map
  GEvent.addListener(map, 'move', Move);
  GEvent.addListener(minimap, 'moveend', MMove);
}

// display a warning if the browser was not compatible
else {
  alert("Sorry, the Google Maps API is not compatible with this browser");
}
<script type="text/javascript">

   function createMarker(point) {
    map.addOverlay(new google.maps.Marker(point));
  }     

  // ===== Setup The Maps =====

  // Display the main map, with some controls and set the initial location function initialize() {
  var map = new google.maps.Map(
    document.getElementById('map'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });

 // Set up three markers on the main map

  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(54.207882,-125.661621),
        map: map
  });
   var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.214790,-124.054399),
        map: map
  });
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.053632,-122.352859),
        map: map
  });

  // create the crosshair icon, which will indicate where we are on the minimap
  // Lets not bother with a shadow
   var Icon = new google.maps.MarkerImage();
  Icon.image = "xhair.png";
  Icon.iconSize = new google.maps.Size(21, 21);
  Icon.shadowSize = new google.maps.Size(0,0);
  Icon.iconAnchor = new google.maps.Point(11, 11);
  Icon.infoWindowAnchor = new google.maps.Point(11, 11);
  Icon.infoShadowAnchor = new google.maps.Point(11, 11);

  // Create the minimap  
  var minimap = new google.maps.Map(
    document.getElementById('minimap'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });      

  // Add the crosshair marker at the centre of the minimap and keep a reference to it

  var xhair = new google.maps.Marker(minimap.getCenter(), Icon);

  minimap.addOverlay(xhair);      

  // ====== Handle the Map movements ======

  // Variables that log whether we are currently causing the maps to be moved

  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
  // and reposition the crosshair back to the centre 
  function Move(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());
  xhair.setPoint(map.getCenter());
  xhair.redraw(true);
}
minimap_moving = false; 
  }   
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
  // and reposition the crosshair back to the centre 
  function MMove(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
  xhair.setPoint(minimap.getCenter());
  xhair.redraw(true);
}
map_moving = false;
  }

  // Listen for when the user moves either map      
     google.maps.event.addListener(map, 'move', Move);
  google.maps.event.addListener(minimap, 'moveend', MMove);

// google.maps.event.addDomListener(window, 'load', initialize);
 google.maps.event.addDomListener(window, 'load', initialize);
<script type="text/javascript">  
  // ===== Setup The Maps =====   
  // Display the main map and set the initial location
  var map = new google.maps.Map(
    document.getElementById('map'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 12,
      zoomControl: false,
      scaleControl: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });

 // Set up the three markers on the main map 
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(54.207882,-125.661621),
        map: map
  });
   var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.214790,-124.054399),
        map: map
  });
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.053632,-122.352859),
        map: map
  });     

  // Create the minimap  
   var minimap = new google.maps.Map(
    document.getElementById('minimap'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 7,
      zoomControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });         
  // Add the crosshair marker at the centre of the minimap using html and CSS 

  // ====== Handle the Map movements ======      
  // Variables that log whether we are currently causing the maps to be moved    
  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
   google.maps.event.addListener(map, 'center_changed', function(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());     
}
minimap_moving = false; 
  })      
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
   google.maps.event.addListener(minimap, 'center_changed', function(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());     
}
map_moving = false;
  })  

// google.maps.event.addDomListener(window, 'load', initialize);
 google.maps.event.addDomListener(window, 'load', initialize);    
</script>    

//

非工作V3代码:

<script type="text/javascript">
//<![CDATA[

if (GBrowserIsCompatible()) {

  function createMarker(point) {
    map.addOverlay(new GMarker(point));
  }

  // ===== Setup The Maps =====

  // Display the main map, with some controls and set the initial location 
  var map = new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(54.531283,-125.125537), 12);

  // Set up three markers on the main map

  createMarker(new GLatLng(54.207882,-125.661621));
  createMarker(new GLatLng(49.214790,-124.054399));
  createMarker(new GLatLng(49.053632,-122.352859));

  // create the crosshair icon, which will indicate where we are on the minimap
  // Lets not bother with a shadow
  var Icon = new GIcon();
  Icon.image = "xhair.png";
  Icon.iconSize = new GSize(21, 21);
  Icon.shadowSize = new GSize(0,0);
  Icon.iconAnchor = new GPoint(11, 11);
  Icon.infoWindowAnchor = new GPoint(11, 11);
  Icon.infoShadowAnchor = new GPoint(11, 11);

  // Create the minimap
  var minimap = new GMap2(document.getElementById("minimap"));
  minimap.setCenter(new GLatLng(54.531283,-125.125537), 7);

  // Add the crosshair marker at the centre of the minimap and keep a reference to it

  var xhair = new GMarker(minimap.getCenter(), Icon);            
  minimap.addOverlay(xhair);


  // ====== Handle the Map movements ======

  // Variables that log whether we are currently causing the maps to be moved

  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
  // and reposition the crosshair back to the centre
  function Move(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());
  xhair.setPoint(map.getCenter());
  xhair.redraw(true);
}
minimap_moving = false;
  }
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
  // and reposition the crosshair back to the centre
  function MMove(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
  xhair.setPoint(minimap.getCenter());
  xhair.redraw(true);
}
map_moving = false;
  }

  // Listen for when the user moves either map
  GEvent.addListener(map, 'move', Move);
  GEvent.addListener(minimap, 'moveend', MMove);
}

// display a warning if the browser was not compatible
else {
  alert("Sorry, the Google Maps API is not compatible with this browser");
}
<script type="text/javascript">

   function createMarker(point) {
    map.addOverlay(new google.maps.Marker(point));
  }     

  // ===== Setup The Maps =====

  // Display the main map, with some controls and set the initial location function initialize() {
  var map = new google.maps.Map(
    document.getElementById('map'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });

 // Set up three markers on the main map

  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(54.207882,-125.661621),
        map: map
  });
   var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.214790,-124.054399),
        map: map
  });
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.053632,-122.352859),
        map: map
  });

  // create the crosshair icon, which will indicate where we are on the minimap
  // Lets not bother with a shadow
   var Icon = new google.maps.MarkerImage();
  Icon.image = "xhair.png";
  Icon.iconSize = new google.maps.Size(21, 21);
  Icon.shadowSize = new google.maps.Size(0,0);
  Icon.iconAnchor = new google.maps.Point(11, 11);
  Icon.infoWindowAnchor = new google.maps.Point(11, 11);
  Icon.infoShadowAnchor = new google.maps.Point(11, 11);

  // Create the minimap  
  var minimap = new google.maps.Map(
    document.getElementById('minimap'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });      

  // Add the crosshair marker at the centre of the minimap and keep a reference to it

  var xhair = new google.maps.Marker(minimap.getCenter(), Icon);

  minimap.addOverlay(xhair);      

  // ====== Handle the Map movements ======

  // Variables that log whether we are currently causing the maps to be moved

  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
  // and reposition the crosshair back to the centre 
  function Move(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());
  xhair.setPoint(map.getCenter());
  xhair.redraw(true);
}
minimap_moving = false; 
  }   
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
  // and reposition the crosshair back to the centre 
  function MMove(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
  xhair.setPoint(minimap.getCenter());
  xhair.redraw(true);
}
map_moving = false;
  }

  // Listen for when the user moves either map      
     google.maps.event.addListener(map, 'move', Move);
  google.maps.event.addListener(minimap, 'moveend', MMove);

// google.maps.event.addDomListener(window, 'load', initialize);
 google.maps.event.addDomListener(window, 'load', initialize);
<script type="text/javascript">  
  // ===== Setup The Maps =====   
  // Display the main map and set the initial location
  var map = new google.maps.Map(
    document.getElementById('map'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 12,
      zoomControl: false,
      scaleControl: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });

 // Set up the three markers on the main map 
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(54.207882,-125.661621),
        map: map
  });
   var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.214790,-124.054399),
        map: map
  });
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.053632,-122.352859),
        map: map
  });     

  // Create the minimap  
   var minimap = new google.maps.Map(
    document.getElementById('minimap'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 7,
      zoomControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });         
  // Add the crosshair marker at the centre of the minimap using html and CSS 

  // ====== Handle the Map movements ======      
  // Variables that log whether we are currently causing the maps to be moved    
  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
   google.maps.event.addListener(map, 'center_changed', function(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());     
}
minimap_moving = false; 
  })      
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
   google.maps.event.addListener(minimap, 'center_changed', function(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());     
}
map_moving = false;
  })  

// google.maps.event.addDomListener(window, 'load', initialize);
 google.maps.event.addDomListener(window, 'load', initialize);    
</script>    

函数createMarker(点){
addOverlay(新的google.maps.Marker(point));
}     
//======设置地图=====
//显示带有一些控件的主地图,并设置初始位置函数initialize(){
var map=new google.maps.map(
document.getElementById('map'){
中心:新google.maps.LatLng(54.531283,-125.125537),
缩放:12,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
//在主地图上设置三个标记
var marker=new google.maps.marker({
位置:新google.maps.LatLng(54.207882,-125.661621),
地图:地图
});
var marker=new google.maps.marker({
位置:new google.maps.LatLng(49.214790,-124.054399),
地图:地图
});
var marker=new google.maps.marker({
位置:新google.maps.LatLng(49.053632,-122.352859),
地图:地图
});
//创建十字线图标,它将指示我们在小地图上的位置
//让我们不要为阴影而烦恼
var Icon=new google.maps.MarkerImage();
Icon.image=“xhair.png”;
Icon.iconSize=新的google.maps.Size(21,21);
Icon.shadowSize=new google.maps.Size(0,0);
Icon.iconAnchor=新的google.maps.Point(11,11);
Icon.infoWindowAnchor=newgoogle.maps.Point(11,11);
Icon.infoShadowAnchor=newgoogle.maps.Point(11,11);
//创建小地图
var minimap=new google.maps.Map(
document.getElementById('minimap'){
中心:新google.maps.LatLng(54.531283,-125.125537),
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP
});      
//在小地图的中心添加十字线标记,并保留对它的引用
var xhair=new google.maps.Marker(minimap.getCenter(),Icon);
小地图添加覆盖(xhair);
//======处理地图移动======
//记录当前是否导致地图移动的变量
var map_moving=0;
var minimap_移动=0;
//此函数处理主贴图移动时发生的情况
//如果我们不移动它(即,如果用户正在移动它),请移动小地图以匹配
//然后将十字线重新定位到中心
函数Move(){
小地图移动=真;
if(map_moving==false){
minimap.setCenter(map.getCenter());
xhair.setPoint(map.getCenter());
xhair.redraw(true);
}
小地图移动=错误;
}   
//此函数处理小地图移动时发生的情况
//如果我们不移动它(即,如果用户正在移动它),则移动主地图以匹配
//然后将十字线重新定位到中心
函数MMove(){
map_moving=true;
如果(小地图移动==假){
map.setCenter(minimap.getCenter());
xhair.setPoint(minimap.getCenter());
xhair.redraw(true);
}
map_moving=false;
}
//倾听用户何时移动任一地图
google.maps.event.addListener(映射,'move',move);
google.maps.event.addListener(小地图'moveend',MMove);
//google.maps.event.addDomListener(窗口“加载”,初始化);
google.maps.event.addDomListener(窗口“加载”,初始化);

升级指南似乎没有多少关于事件的信息,一些过时的事件似乎没有列在过时的代码中。V2事件:“move”和“moveend”显然在V3中不受支持,但有相似之处(但不相同)V3事件;dragstart、drag、dragend和center_已更改。由于拖动事件与我使用的其他选择按钮不兼容:我更改了center_,这对我的应用程序来说很有吸引力

我探索了一些中间十字线的选项,但是当地图被平移时,它们似乎有死点或跳跃,所以我取消了javascript解决方案,使用Drew Noakes提供的简单解决方案

这是我为修复不工作的V3代码而提出的,可能会对其他人有所帮助

V3代码:

<script type="text/javascript">
//<![CDATA[

if (GBrowserIsCompatible()) {

  function createMarker(point) {
    map.addOverlay(new GMarker(point));
  }

  // ===== Setup The Maps =====

  // Display the main map, with some controls and set the initial location 
  var map = new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(54.531283,-125.125537), 12);

  // Set up three markers on the main map

  createMarker(new GLatLng(54.207882,-125.661621));
  createMarker(new GLatLng(49.214790,-124.054399));
  createMarker(new GLatLng(49.053632,-122.352859));

  // create the crosshair icon, which will indicate where we are on the minimap
  // Lets not bother with a shadow
  var Icon = new GIcon();
  Icon.image = "xhair.png";
  Icon.iconSize = new GSize(21, 21);
  Icon.shadowSize = new GSize(0,0);
  Icon.iconAnchor = new GPoint(11, 11);
  Icon.infoWindowAnchor = new GPoint(11, 11);
  Icon.infoShadowAnchor = new GPoint(11, 11);

  // Create the minimap
  var minimap = new GMap2(document.getElementById("minimap"));
  minimap.setCenter(new GLatLng(54.531283,-125.125537), 7);

  // Add the crosshair marker at the centre of the minimap and keep a reference to it

  var xhair = new GMarker(minimap.getCenter(), Icon);            
  minimap.addOverlay(xhair);


  // ====== Handle the Map movements ======

  // Variables that log whether we are currently causing the maps to be moved

  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
  // and reposition the crosshair back to the centre
  function Move(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());
  xhair.setPoint(map.getCenter());
  xhair.redraw(true);
}
minimap_moving = false;
  }
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
  // and reposition the crosshair back to the centre
  function MMove(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
  xhair.setPoint(minimap.getCenter());
  xhair.redraw(true);
}
map_moving = false;
  }

  // Listen for when the user moves either map
  GEvent.addListener(map, 'move', Move);
  GEvent.addListener(minimap, 'moveend', MMove);
}

// display a warning if the browser was not compatible
else {
  alert("Sorry, the Google Maps API is not compatible with this browser");
}
<script type="text/javascript">

   function createMarker(point) {
    map.addOverlay(new google.maps.Marker(point));
  }     

  // ===== Setup The Maps =====

  // Display the main map, with some controls and set the initial location function initialize() {
  var map = new google.maps.Map(
    document.getElementById('map'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 12,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });

 // Set up three markers on the main map

  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(54.207882,-125.661621),
        map: map
  });
   var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.214790,-124.054399),
        map: map
  });
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.053632,-122.352859),
        map: map
  });

  // create the crosshair icon, which will indicate where we are on the minimap
  // Lets not bother with a shadow
   var Icon = new google.maps.MarkerImage();
  Icon.image = "xhair.png";
  Icon.iconSize = new google.maps.Size(21, 21);
  Icon.shadowSize = new google.maps.Size(0,0);
  Icon.iconAnchor = new google.maps.Point(11, 11);
  Icon.infoWindowAnchor = new google.maps.Point(11, 11);
  Icon.infoShadowAnchor = new google.maps.Point(11, 11);

  // Create the minimap  
  var minimap = new google.maps.Map(
    document.getElementById('minimap'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });      

  // Add the crosshair marker at the centre of the minimap and keep a reference to it

  var xhair = new google.maps.Marker(minimap.getCenter(), Icon);

  minimap.addOverlay(xhair);      

  // ====== Handle the Map movements ======

  // Variables that log whether we are currently causing the maps to be moved

  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
  // and reposition the crosshair back to the centre 
  function Move(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());
  xhair.setPoint(map.getCenter());
  xhair.redraw(true);
}
minimap_moving = false; 
  }   
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
  // and reposition the crosshair back to the centre 
  function MMove(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
  xhair.setPoint(minimap.getCenter());
  xhair.redraw(true);
}
map_moving = false;
  }

  // Listen for when the user moves either map      
     google.maps.event.addListener(map, 'move', Move);
  google.maps.event.addListener(minimap, 'moveend', MMove);

// google.maps.event.addDomListener(window, 'load', initialize);
 google.maps.event.addDomListener(window, 'load', initialize);
<script type="text/javascript">  
  // ===== Setup The Maps =====   
  // Display the main map and set the initial location
  var map = new google.maps.Map(
    document.getElementById('map'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 12,
      zoomControl: false,
      scaleControl: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });

 // Set up the three markers on the main map 
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(54.207882,-125.661621),
        map: map
  });
   var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.214790,-124.054399),
        map: map
  });
  var marker = new google.maps.Marker({
        position: new google.maps.LatLng(49.053632,-122.352859),
        map: map
  });     

  // Create the minimap  
   var minimap = new google.maps.Map(
    document.getElementById('minimap'), {
      center: new google.maps.LatLng(54.531283,-125.125537),
      zoom: 7,
      zoomControl: false,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  });         
  // Add the crosshair marker at the centre of the minimap using html and CSS 

  // ====== Handle the Map movements ======      
  // Variables that log whether we are currently causing the maps to be moved    
  var map_moving = 0;
  var minimap_moving = 0;

  // This function handles what happens when the main map moves
  // If we arent moving it (i.e. if the user is moving it) move the minimap to match
   google.maps.event.addListener(map, 'center_changed', function(){
    minimap_moving = true;
if (map_moving == false) {
  minimap.setCenter(map.getCenter());     
}
minimap_moving = false; 
  })      
  // This function handles what happens when the mini map moves
  // If we arent moving it (i.e. if the user is moving it) move the main map to match
   google.maps.event.addListener(minimap, 'center_changed', function(){
    map_moving = true;
if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());     
}
map_moving = false;
  })  

// google.maps.event.addDomListener(window, 'load', initialize);
 google.maps.event.addDomListener(window, 'load', initialize);    
</script>    

你看到了吗?addOverlay,设定点是v2;MarkerImage是不推荐使用的v3。你的
initialize
函数在哪里?javascript是区分大小写的。
Center:new google.maps.LatLng(54.531283,-125.125537),
应该是
Center:new google.maps.LatLng(54.531283,-.125537),
谢谢:修复了javascript的问题,初始化函数在代码的末尾。我已经阅读并尝试按照升级指南进行操作,抱歉,但我对这一点非常陌生,将尝试解决xhair的addoverlay/setPoint/MarkerImage问题。仍然不明白为什么在V3中地图没有一起移动。您可以查看这个世界king V3地图位于: