diff options
Diffstat (limited to 'modules_v3/googlemap/placehierarchy.php')
| -rw-r--r-- | modules_v3/googlemap/placehierarchy.php | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/modules_v3/googlemap/placehierarchy.php b/modules_v3/googlemap/placehierarchy.php index 101b11204e..de35d41a00 100644 --- a/modules_v3/googlemap/placehierarchy.php +++ b/modules_v3/googlemap/placehierarchy.php @@ -127,7 +127,7 @@ function set_levelm($level, $parent) { function create_map($placelevels) { $level = safe_GET('level'); - global $GOOGLEMAP_PH_XSIZE, $GOOGLEMAP_PH_YSIZE, $GOOGLEMAP_MAP_TYPE, $TEXT_DIRECTION, $levelm; + global $GOOGLEMAP_PH_XSIZE, $GOOGLEMAP_PH_YSIZE, $GOOGLEMAP_MAP_TYPE, $TEXT_DIRECTION, $levelm, $plzoom; // *** ENABLE STREETVIEW *** (boolean) ========================================================= $STREETVIEW = get_module_setting('googlemap', 'GM_USE_STREETVIEW'); @@ -153,6 +153,8 @@ function create_map($placelevels) { echo "background-image: url('images/loading.gif'); background-position: center; background-repeat: no-repeat; overflow: hidden;\"></div>"; echo '<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>'; echo '</td>'; + + $plzoom = $latlng['pl_zoom']; // Map zoom level if (WT_USER_IS_ADMIN) { $placecheck_url = 'module.php?mod=googlemap&mod_action=admin_placecheck'; @@ -317,12 +319,12 @@ function print_gm_markers($place2, $level, $parent, $levelm, $linklevels, $place global $GOOGLEMAP_COORD, $GOOGLEMAP_PH_MARKER, $GM_DISP_SHORT_PLACE, $GM_DISP_COUNT; if (($place2['lati'] == NULL) || ($place2['long'] == NULL) || (($place2['lati'] == "0") && ($place2['long'] == "0"))) { - echo "var icon_type = new google.maps.MarkerImage();\n"; - echo ' icon_type.image = "', WT_MODULES_DIR, 'googlemap/images/marker_yellow.png";'; - echo ' icon_type.shadow = "', WT_MODULES_DIR, 'googlemap/images/shadow50.png";'; - echo " icon_type.iconSize = google.maps.Size(20, 34);\n"; - echo " icon_type.shadowSize = google.maps.Size(37, 34);\n"; - echo "var point = new google.maps.LatLng(0, 0);\n"; + echo 'var icon_type = new google.maps.MarkerImage();\n'; + echo 'icon_type.image = "', WT_MODULES_DIR, 'googlemap/images/marker_yellow.png";'; + echo 'icon_type.shadow = "', WT_MODULES_DIR, 'googlemap/images/shadow50.png";'; + echo 'icon_type.iconSize = google.maps.Size(20, 34);\n'; + echo 'icon_type.shadowSize = google.maps.Size(37, 34);\n'; + echo 'var point = new google.maps.LatLng(0, 0);\n'; if ($lastlevel) echo "var marker = createMarker(point, \"<div class='iwstyle' style='width: 250px;'><a href='?level=", $level, $linklevels, "'><br />"; else { @@ -467,7 +469,11 @@ function print_gm_markers($place2, $level, $parent, $levelm, $linklevels, $place } function map_scripts($numfound, $level, $parent, $linklevels, $placelevels, $place_names) { - global $GOOGLEMAP_MAP_TYPE, $GM_MAX_NOF_LEVELS, $GOOGLEMAP_PH_WHEEL, $GOOGLEMAP_PH_CONTROLS, $GOOGLEMAP_PH_MARKER; + global $GOOGLEMAP_MAP_TYPE, $GM_MAX_NOF_LEVELS, $GOOGLEMAP_PH_WHEEL, $GOOGLEMAP_PH_CONTROLS, $GOOGLEMAP_PH_MARKER, $plzoom; + + echo "<script> var numMarkers = '".$numfound."';</script>"; + echo "<script> var mapLevel = '".$level."';</script>"; + echo "<script> var placezoom = '", $plzoom, "';</script>"; echo '<link type="text/css" href ="', WT_MODULES_DIR, 'googlemap/css/googlemap_style.css" rel="stylesheet" />'; ?> @@ -509,6 +515,11 @@ function map_scripts($numfound, $level, $parent, $linklevels, $placelevels, $pla infowindow.close(); }); + // If only one marker, set zoom level to that of place in database + if (mapLevel != 0) { + var pointZoom = placezoom; + } + // Creates a marker whose info window displays the given name function createMarker(point, html, icon, name) { // Choose icon and shadow ============ @@ -574,7 +585,15 @@ function map_scripts($numfound, $level, $parent, $linklevels, $placelevels, $pla marker.myposn = posn; gmarkers.push(marker); bounds.extend(marker.position); - map.fitBounds(bounds); + + // If only one marker use database place zoom level rather than fitBounds of markers + if (numMarkers > 1) { + map.fitBounds(bounds); + } else { + map.setCenter(bounds.getCenter()); + map.setZoom(parseFloat(pointZoom)); + } + return marker; } @@ -596,7 +615,7 @@ function map_scripts($numfound, $level, $parent, $linklevels, $placelevels, $pla // echo "zoomlevel = map.getBoundsZoomLevel(bounds);\n"; // echo " map.setCenter(new google.maps.LatLng(0, 0), zoomlevel+8);\n"; } else if ($numfound<2 && $level>1) { - echo "map.maxZoom=".$GOOGLEMAP_MAX_ZOOM.";"; + // echo "map.maxZoom=".$GOOGLEMAP_MAX_ZOOM.";"; // echo "zoomlevel = map.getBoundsZoomLevel(bounds);\n"; // echo " map.setCenter(new google.maps.LatLng(0, 0), zoomlevel+18);\n"; } |
