PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/examples/MarkerManagerDemo/bin-release/srcview/source/com/google/maps/examples/MarkerManager.as.html

http://gmaps-utility-library-flash.googlecode.com/
HTML | 727 lines | 643 code | 83 blank | 1 comment | 0 complexity | f9b25b2c778f7d42552e7fa30b6dfba8 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. <!-- saved from url=(0014)about:internet -->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title>MarkerManager.as</title>
  7. <link rel="stylesheet" type="text/css" href="../../../../../SourceStyles.css"/>
  8. </head>
  9. <body><pre><span class="ActionScriptComment">/*
  10. * MarkerManager, v1.0
  11. * Copyright (c) 2007 Google Inc.
  12. * Author: Doug Ricket, others
  13. * Ported to AS3 by Pamela Fox
  14. *
  15. * Licensed under the Apache License, Version 2.0:
  16. * http://www.apache.org/licenses/LICENSE-2.0
  17. *
  18. * Marker manager is an interface between the map and the user, designed
  19. * to manage adding and removing many points when the viewport changes.
  20. *
  21. * Algorithm: The MM places its markers onto a grid, similar to the map tiles.
  22. * When the user moves the viewport, the MM computes which grid cells have
  23. * entered or left the viewport, and shows or hides all the markers in those
  24. * cells.
  25. * (If the users scrolls the viewport beyond the markers that are loaded,
  26. * no markers will be visible until the EVENT_moveend triggers an update.)
  27. *
  28. * In practical consequences, this allows 10,000 markers to be distributed over
  29. * a large area, and as long as only 100-200 are visible in any given viewport,
  30. * the user will see good performance corresponding to the 100 visible markers,
  31. * rather than poor performance corresponding to the total 10,000 markers.
  32. *
  33. * Note that some code is optimized for speed over space,
  34. * with the goal of accommodating thousands of markers.
  35. *
  36. */</span>
  37. <span class="ActionScriptpackage">package</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">examples</span> <span class="ActionScriptBracket/Brace">{</span>
  38. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">events</span>.<span class="ActionScriptDefault_Text">Event</span>;
  39. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">events</span>.<span class="ActionScriptDefault_Text">MouseEvent</span>;
  40. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">geom</span>.<span class="ActionScriptDefault_Text">Point</span>;
  41. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">display</span>.<span class="ActionScriptDefault_Text">DisplayObject</span>;
  42. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">display</span>.<span class="ActionScriptDefault_Text">Sprite</span>;
  43. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">display</span>.<span class="ActionScriptDefault_Text">Shape</span>;
  44. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">text</span>.<span class="ActionScriptDefault_Text">TextField</span>;
  45. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">text</span>.<span class="ActionScriptDefault_Text">TextFieldAutoSize</span>;
  46. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">flash</span>.<span class="ActionScriptDefault_Text">text</span>.<span class="ActionScriptDefault_Text">TextFormat</span>;
  47. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">MapEvent</span>;
  48. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">MapMoveEvent</span>;
  49. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">Map</span>;
  50. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">LatLng</span>;
  51. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">LatLngBounds</span>;
  52. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">examples</span>.<span class="ActionScriptDefault_Text">GridBounds</span>;
  53. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">overlays</span>.<span class="ActionScriptDefault_Text">Marker</span>;
  54. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">interfaces</span>.<span class="ActionScriptDefault_Text">IMap</span>;
  55. <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span>.<span class="ActionScriptDefault_Text">google</span>.<span class="ActionScriptDefault_Text">maps</span>.<span class="ActionScriptDefault_Text">interfaces</span>.<span class="ActionScriptDefault_Text">IProjection</span>;
  56. <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">MarkerManager</span> <span class="ActionScriptBracket/Brace">{</span>
  57. <span class="ActionScriptComment">// Static constants:
  58. </span><span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">DEFAULT_TILE_SIZE</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 1024;
  59. <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">DEFAULT_MAX_ZOOM</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 17;
  60. <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">DEFAULT_BORDER_PADDING</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 100;
  61. <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">MERCATOR_ZOOM_LEVEL_ZERO_RANGE</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 256;
  62. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">map_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">IMap</span>;
  63. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mapZoom_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
  64. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxZoom_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
  65. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">projection_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">IProjection</span>;
  66. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">trackMarkers_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span>;
  67. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">swPadding_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span>;
  68. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">nePadding_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span>;
  69. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">borderPadding_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
  70. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>;
  71. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>;
  72. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span>;
  73. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shownBounds_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">GridBounds</span>;
  74. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">shownMarkers_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
  75. <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
  76. <span class="ActionScriptASDoc">/**
  77. * Creates a new MarkerManager that will show/hide markers on a map.
  78. *
  79. * @constructor
  80. * @param {Map} map The map to manage.
  81. * @param {Object} opt_opts A container for optional arguments:
  82. * {Number} maxZoom The maximum zoom level for which to create tiles.
  83. * {Number} borderPadding The width in pixels beyond the map border,
  84. * where markers should be display.
  85. * {Boolean} trackMarkers Whether or not this manager should track marker
  86. * movements.
  87. */</span>
  88. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">MarkerManager</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">map</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">IMap</span>, <span class="ActionScriptDefault_Text">opt_opts</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Object</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  89. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">map</span>;
  90. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">map</span>.<span class="ActionScriptDefault_Text">getZoom</span><span class="ActionScriptBracket/Brace">()</span>;
  91. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">projection_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">map</span>.<span class="ActionScriptDefault_Text">getCurrentMapType</span><span class="ActionScriptBracket/Brace">()</span>.<span class="ActionScriptDefault_Text">getProjection</span><span class="ActionScriptBracket/Brace">()</span>;
  92. <span class="ActionScriptDefault_Text">opt_opts</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptBracket/Brace">{}</span>;
  93. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">DEFAULT_TILE_SIZE</span>;
  94. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">DEFAULT_MAX_ZOOM</span>;
  95. <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">maxZoom</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptReserved">undefined</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  96. <span class="ActionScriptDefault_Text">maxZoom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">maxZoom</span>;
  97. <span class="ActionScriptBracket/Brace">}</span>
  98. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">maxZoom</span>;
  99. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">trackMarkers_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">trackMarkers</span>;
  100. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>;
  101. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">borderPadding</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  102. <span class="ActionScriptDefault_Text">padding</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">opt_opts</span>.<span class="ActionScriptDefault_Text">borderPadding</span>;
  103. <span class="ActionScriptBracket/Brace">}</span> <span class="ActionScriptReserved">else</span> <span class="ActionScriptBracket/Brace">{</span>
  104. <span class="ActionScriptDefault_Text">padding</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">DEFAULT_BORDER_PADDING</span>;
  105. <span class="ActionScriptBracket/Brace">}</span>
  106. <span class="ActionScriptComment">// The padding in pixels beyond the viewport, where we will pre-load markers.
  107. </span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">swPadding_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">-</span><span class="ActionScriptDefault_Text">padding</span>, <span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptBracket/Brace">)</span>;
  108. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">nePadding_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">padding</span>, <span class="ActionScriptOperator">-</span><span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptBracket/Brace">)</span>;
  109. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">borderPadding_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">padding</span>;
  110. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
  111. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
  112. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
  113. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
  114. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> 0;
  115. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">MapMoveEvent</span>.<span class="ActionScriptDefault_Text">MOVE_END</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">onMapMoveEnd_</span><span class="ActionScriptBracket/Brace">)</span>;
  116. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">resetManager_</span><span class="ActionScriptBracket/Brace">()</span>;
  117. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span> <span class="ActionScriptOperator">=</span> 0;
  118. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getMapGridBounds_</span><span class="ActionScriptBracket/Brace">()</span>;
  119. <span class="ActionScriptBracket/Brace">}</span>;
  120. <span class="ActionScriptComment">// NOTE: These two closures provide easy access to the map.
  121. </span><span class="ActionScriptComment">// They are used as callbacks, not as methods.
  122. </span><span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  123. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">removeOverlay</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
  124. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span><span class="ActionScriptOperator">--</span>;
  125. <span class="ActionScriptBracket/Brace">}</span>
  126. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addOverlay_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  127. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">map_</span>.<span class="ActionScriptDefault_Text">addOverlay</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
  128. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownMarkers_</span><span class="ActionScriptOperator">++</span>;
  129. <span class="ActionScriptBracket/Brace">}</span>
  130. <span class="ActionScriptASDoc">/**
  131. * Initializes MarkerManager arrays for all zoom levels
  132. * Called by constructor and by clearAllMarkers
  133. */</span>
  134. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">resetManager_</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  135. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mapWidth</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">MERCATOR_ZOOM_LEVEL_ZERO_RANGE</span>;
  136. <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span>; <span class="ActionScriptOperator">++</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  137. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">grid_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Array</span><span class="ActionScriptBracket/Brace">()</span>;
  138. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">numMarkers_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> 0;
  139. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">]</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">ceil</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mapWidth</span><span class="ActionScriptOperator">/</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptBracket/Brace">)</span>;
  140. <span class="ActionScriptDefault_Text">mapWidth</span> <span class="ActionScriptOperator">&lt;&lt;=</span> 1;
  141. <span class="ActionScriptBracket/Brace">}</span>
  142. <span class="ActionScriptBracket/Brace">}</span>
  143. <span class="ActionScriptASDoc">/**
  144. * Removes all currently displayed markers
  145. * and calls resetManager to clear arrays
  146. */</span>
  147. <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">clearMarkers</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  148. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">processAll_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeOverlay_</span><span class="ActionScriptBracket/Brace">)</span>;
  149. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">resetManager_</span><span class="ActionScriptBracket/Brace">()</span>;
  150. <span class="ActionScriptBracket/Brace">}</span>
  151. <span class="ActionScriptASDoc">/**
  152. * Gets the tile coordinate for a given latlng point.
  153. *
  154. * @param {LatLng} latlng The geographical point.
  155. * @param {Number} zoom The zoom level.
  156. * @param {GSize} padding The padding used to shift the pixel coordinate.
  157. * Used for expanding a bounds to include an extra padding
  158. * of pixels surrounding the bounds.
  159. * @return {GPoint} The point in tile coordinates.
  160. *
  161. */</span>
  162. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">latlng</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">padding</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptBracket/Brace">{</span>
  163. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">pixelPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">projection_</span>.<span class="ActionScriptDefault_Text">fromLatLngToPixel</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">latlng</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
  164. <span class="ActionScriptReserved">return</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>
  165. <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">floor</span><span class="ActionScriptBracket/Brace">((</span><span class="ActionScriptDefault_Text">pixelPoint</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">padding</span>.<span class="ActionScriptDefault_Text">x</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">/</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptBracket/Brace">)</span>,
  166. <span class="ActionScriptDefault_Text">Math</span>.<span class="ActionScriptDefault_Text">floor</span><span class="ActionScriptBracket/Brace">((</span><span class="ActionScriptDefault_Text">pixelPoint</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">padding</span>.<span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">/</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">tileSize_</span><span class="ActionScriptBracket/Brace">))</span>;
  167. <span class="ActionScriptBracket/Brace">}</span>;
  168. <span class="ActionScriptASDoc">/**
  169. * Finds the appropriate place to add the marker to the grid.
  170. * Optimized for speed; does not actually add the marker to the map.
  171. * Designed for batch-processing thousands of markers.
  172. *
  173. * @param {Marker} marker The marker to add.
  174. * @param {Number} minZoom The minimum zoom for displaying the marker.
  175. * @param {Number} maxZoom The maximum zoom for displaying the marker.
  176. */</span>
  177. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">addMarkerBatch_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span>, <span class="ActionScriptDefault_Text">minZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span>, <span class="ActionScriptDefault_Text">maxZoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  178. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">mPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">marker</span>.<span class="ActionScriptDefault_Text">getLatLng</span><span class="ActionScriptBracket/Brace">()</span>;
  179. <span class="ActionScriptComment">// Tracking markers is expensive, so we do this only if the
  180. </span> <span class="ActionScriptComment">// user explicitly requested it when creating marker manager.
  181. </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">trackMarkers_</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  182. <span class="ActionScriptDefault_Text">marker</span>.<span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">&quot;changed&quot;</span>, <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">onMarkerMoved_</span><span class="ActionScriptBracket/Brace">)</span>;
  183. <span class="ActionScriptBracket/Brace">}</span>
  184. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">gridPoint</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">mPoint</span>, <span class="ActionScriptDefault_Text">maxZoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
  185. <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">maxZoom</span>; <span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">&gt;=</span> <span class="ActionScriptDefault_Text">minZoom</span>; <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">--</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  186. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
  187. <span class="ActionScriptDefault_Text">cell</span>.<span class="ActionScriptDefault_Text">push</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
  188. <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&gt;&gt;</span> 1;
  189. <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">gridPoint</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">&gt;&gt;</span> 1;
  190. <span class="ActionScriptBracket/Brace">}</span>
  191. <span class="ActionScriptBracket/Brace">}</span>;
  192. <span class="ActionScriptASDoc">/**
  193. * Returns whether or not the given point is visible in the shown bounds. This
  194. * is a helper method that takes care of the corner case, when shownBounds have
  195. * negative minX value.
  196. *
  197. * @param {Point} point a point on a grid.
  198. * @return {Boolean} Whether or not the given point is visible in the currently
  199. * shown bounds.
  200. */</span>
  201. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">point</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptBracket/Brace">{</span>
  202. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">vertical</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">minY</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">&amp;&amp;</span>
  203. <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">maxY</span>;
  204. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">minX</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">minX</span>;
  205. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">horizontal</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">minX</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">maxX</span>;
  206. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(!</span><span class="ActionScriptDefault_Text">horizontal</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">minX</span> <span class="ActionScriptOperator">&lt;</span> 0<span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  207. <span class="ActionScriptComment">// Shifts the negative part of the rectangle. As point.x is always less
  208. </span> <span class="ActionScriptComment">// than grid width, only test shifted minX .. 0 part of the shown bounds.
  209. </span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">width</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">gridWidth_</span><span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">shownBounds_</span>.<span class="ActionScriptDefault_Text">z</span><span class="ActionScriptBracket/Brace">]</span>;
  210. <span class="ActionScriptDefault_Text">horizontal</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">minX</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">width</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">point</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">&lt;=</span> <span class="ActionScriptDefault_Text">width</span> <span class="ActionScriptOperator">-</span> 1;
  211. <span class="ActionScriptBracket/Brace">}</span>
  212. <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">vertical</span> <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptDefault_Text">horizontal</span>;
  213. <span class="ActionScriptBracket/Brace">}</span>
  214. <span class="ActionScriptASDoc">/**
  215. * Reacts to a notification from a marker that it has moved to a new location.
  216. * It scans the grid all all zoom levels and moves the marker from the old grid
  217. * location to a new grid location.
  218. *
  219. * @param {Marker} marker The marker that moved.
  220. * @param {LatLng} oldLatLng The old position of the marker.
  221. * @param {LatLng} newLatLng The new position of the marker.
  222. */</span>
  223. <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onMarkerMoved_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Marker</span>, <span class="ActionScriptDefault_Text">oldLatLng</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span>, <span class="ActionScriptDefault_Text">newLatLng</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">LatLng</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span> <span class="ActionScriptBracket/Brace">{</span>
  224. <span class="ActionScriptComment">// NOTE: We do not know the minimum or maximum zoom the marker was
  225. </span> <span class="ActionScriptComment">// added at, so we start at the absolute maximum. Whenever we successfully
  226. </span> <span class="ActionScriptComment">// remove a marker at a given zoom, we add it at the new grid coordinates.
  227. </span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">maxZoom_</span>;
  228. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">changed</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Boolean</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>;
  229. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">oldGrid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldLatLng</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
  230. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">newGrid</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Point</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getTilePoint_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newLatLng</span>, <span class="ActionScriptDefault_Text">zoom</span>, <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Point</span><span class="ActionScriptBracket/Brace">(</span>0, 0<span class="ActionScriptBracket/Brace">))</span>;
  231. <span class="ActionScriptReserved">while</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">&gt;=</span> 0 <span class="ActionScriptOperator">&amp;&amp;</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">x</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">y</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
  232. <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellNoCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">oldGrid</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>;
  233. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  234. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">removeFromArray</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">cell</span>, <span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
  235. <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">getGridCellCreate_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">x</span>, <span class="ActionScriptDefault_Text">newGrid</span>.<span class="ActionScriptDefault_Text">y</span>, <span class="ActionScriptDefault_Text">zoom</span><span class="ActionScriptBracket/Brace">)</span>.<span class="ActionScriptDefault_Text">push</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">marker</span><span class="ActionScriptBracket/Brace">)</span>;
  236. <span class="ActionScriptBracket/Brace">}</span>
  237. <span class="ActionScriptBracket/Brace">}</span>
  238. <span class="ActionScriptComment">// For the current zoom we also need to update the map. Markers that no
  239. </span> <span class="ActionScriptComment">// longer are visible are removed from the map. Markers that moved into
  240. </span> <span class="ActionScriptComment">// the shown bounds are added to the map. This also lets us keep the count
  241. </span> <span class="ActionScriptComment">// of visible markers up to date.
  242. </span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">zoom</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">mapZoom_</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptBracket/Brace">{</span>
  243. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">oldGrid</span><span class="ActionScriptBracket/Brace">))</span> <span class="ActionScriptBracket/Brace">{</span>
  244. <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(!</span><span class="ActionScriptReserved">this</span>.<span class="ActionScriptDefault_Text">isGridPointVisible_</span><span class="ActionScriptBrack…

Large files files are truncated, but you can click here to view the full file