diff --git a/src/plugins/webreport/NarrativeWeb.py b/src/plugins/webreport/NarrativeWeb.py
index 4c9668cfb..61a98bd1f 100644
--- a/src/plugins/webreport/NarrativeWeb.py
+++ b/src/plugins/webreport/NarrativeWeb.py
@@ -2511,48 +2511,46 @@ class PlacePage(BasePage):
middle += jsc
jsc += """
- var map;
- var latlon;
-
- function initialize() {
-
- // create mxn object
- map = new mxn.Mapstraction('googlev3','googlev3');
-
- // add map controls to image
- map.addControls({
- pan: true,
- zoom: 'large',
- scale: true,
- disableDoubleClickZoom: true,
- keyboardShortcuts: true,
- scrollwheel: false,
- map_type: true
- });
-
- latlon = new mxn.LatLonPoint(%s, %s);""" % (latitude, longitude)
+ var map;
+ var home = new mxn.LatLonPoint(%s, %s);""" % (latitude, longitude)
jsc += """
- // put map on page
- map.setCenterAndZoom(latlon, 10);
+ function initialize() {
- var marker;
-
- // set marker at latitude/ longitude
- marker = new mxn.Marker(latlon);
+ // create mxn object
+ map = new mxn.Mapstraction('googlev3','googlev3');
- // add marker InfoBubble() using place name
- marker.setInfoBubble('
%s
'); """ % self.page_title
+ // add map controls to image
+ map.addControls({
+ pan: true,
+ zoom: 'large',
+ scale: true,
+ keyboardShortcuts: true,
+ map_type: true
+ });
+
+ // put map on page
+ map.setCenterAndZoom(home, 12);
+
+ // set marker at latitude/ longitude
+ var marker = new mxn.Marker(home);
+
+ // add marker InfoBubble() place name
+ marker.setInfoBubble('%s
'); """ \
+ % self.page_title
jsc += """
- // add marker to map
- map.addMarker(marker, true);
- }"""
- # there is no need to add an ending "",
- # as it will be added automatically!
+ // add marker to map
+ map.addMarker(marker, true);
+ }"""
+ # there is no need to add an ending "",
+ # as it will be added automatically!
- # googlev3 division
- middle += Html("div", id = "googlev3", inline = True)
+ # googlev3 division
+ middle += Html("div", id = "googlev3", inline = True)
+
+ # add fullclear for proper styling
+ middle += fullclear
# add javascript function call to body element
body.attr = 'onload = "initialize();"'
@@ -3905,25 +3903,39 @@ class IndividualPage(BasePage):
if not place_lat_long:
return
- MinX = MaxX = "0.00000001"
- MinY = MaxY = "0.00000001"
+ MinX = "0.00000001"
+ MaxX = "0.00000001"
+ MinY = "0.00000001"
+ MaxY = "0.00000001"
+ spanX = 0
+ spanY = 0
+ XCoordinates = []
+ YCoordinates = []
+
number_markers = len(place_lat_long)
if number_markers > 3:
- # sort on X coordinates to get min and max X GPS Coordinates
- place_lat_long = sorted(place_lat_long, key = operator.itemgetter(0, 1, 2))
- MinX = place_lat_long[0][0]
- MaxX = place_lat_long[-1][0]
+ for (lat, long, pname, handle, date) in place_lat_long:
+ XCoordinates.append(lat)
+ YCoordinates.append(long)
- # sort on Y coordinates to get min and max Y GPS Coordinates
- place_lat_long = sorted(place_lat_long, key = operator.itemgetter(1, 0, 2))
- YCoordinates = place_lat_long
- MinY = place_lat_long[-1][1]
- MaxY = place_lat_long[0][1]
+ XCoordinates.sort()
+ MinX = XCoordinates[0]
+ MaxX = XCoordinates[-1]
+ spanX = int( Decimal( MaxX ) - Decimal( MinX ) )
- # create span widths
- spanX = Decimal(Decimal(MaxX) - Decimal(MinX))
- spanY = Decimal(Decimal(MaxY) - Decimal(MinY))
+ YCoordinates.sort()
+ MinY = YCoordinates[0]
+ MaxY = YCoordinates[-1]
+ spanY = int( Decimal( MaxY ) - Decimal( MinY ) )
+
+ smallset = [num for num in range(-17, 0)]
+ for num in range(0, 17):
+ smallset.append(num)
+
+ middleset = [num for num in range(-41, -17)]
+ for num in range(17, 41):
+ middleset.append(num)
# sort place_lat_long based on chronological date order
place_lat_long = sorted(place_lat_long, key = operator.itemgetter(4, 2, 0))
@@ -3947,10 +3959,10 @@ class IndividualPage(BasePage):
head += Html("script", src = url, inline = True)
# set map dimensions based on span of Y Coordinates
- if (-10 <= spanY > -1) or (10 <= spanY > 1):
+ if spanY in smallset:
map_size = "smallYMap"
- elif (-40 <= spanY > -11) or (40 <= spanY > 11):
- map_size = "middleYMap"
+ elif spanY in middleset:
+ map_size = "middleYMaap"
else:
map_size = "largeYMap"
@@ -3962,15 +3974,15 @@ class IndividualPage(BasePage):
msg = _("The place markers on this page represent a differemt location "
"based upon your spouse, your children (if any), and your personal "
"events and their places. The list has been sorted in chronological "
- "order. The markers are numbered as you move your mouse pointer over "
- "them and matching the same in References section below. Clicking "
- "on the place’s name will take you to that place’s page.")
+ "date order. Clicking on the place’s name in the References "
+ "will take you to that place’s page. Clicking on the markers "
+ "will display its place title.")
mapbody += Html("p", msg, id = "description")
- if (-10 <= spanX > -1) or (10 <= spanX > 1):
+ if spanX in smallset:
map_size = "smallXMap"
- elif (-40 <= spanX > -11) or (40 <= spanX > 11):
- map_size = "middleXMap"
+ elif spanX in middleset:
+ map_size = "middleXMaap"
else:
map_size = "largeXMap"
@@ -3985,7 +3997,6 @@ class IndividualPage(BasePage):
jsc += """
var map;
- var latlon;
function initialize() {
@@ -4003,19 +4014,13 @@ class IndividualPage(BasePage):
map_type: true
});"""
- index = 0
for (lat, long, p, h, d) in place_lat_long:
- j = index + 1
-
- jsc += """ add_markers(%d, %s, %s, "%s");""" % ( j, lat, long, p )
- index += 1
+ jsc += """ add_markers(%s, %s, "%s");""" % ( lat, long, p )
jsc += """
}"""
- if (-20 <= spanY > -1) or (20 <= spanY > 1):
- pass
+ if spanY not in smallset and spanY not in middleset:
- else:
# set southWest and northEast boundaries as spanY is greater than 20
jsc += """
// boundary southWest equals bottom left GPS Coordinates
@@ -4029,37 +4034,40 @@ class IndividualPage(BasePage):
# include add_markers function
jsc += """
- function add_markers(num, latitude, longitude, title) {
+ function add_markers(latitude, longitude, title) {
- latlon = new mxn.LatLonPoint(latitude, longitude);
+ var latlon = new mxn.LatLonPoint(latitude, longitude);
var marker = new mxn.Marker(latlon);
- marker.setInfoBubble(title);
+ marker.setInfoBubble('' + title + '
');
map.addMarker(marker, true);"""
- if (-20 <= spanY > -1) or (20 <= spanY > 1):
- jsc += """
- var zoomlevel = 6;"""
+ if spanY in smallset:
+ zoomlevel = 6
+ elif spanY in middleset:
+ zoomlevel = 4
else:
- jsc += """
- var zoomlevel = 8;"""
+ zoomlevel = 1
+
jsc += """
- map.setCenterAndZoom(latlon, zoomlevel);
- }"""
+ map.setCenterAndZoom(latlon, %d);
+ }""" % zoomlevel
+
# there is no need to add an ending "",
# as it will be added automatically!
# here is where the map is held in the CSS
middlesection += Html("div", id = "familygooglev3", inline = True)
- # add references division and title
+ # add fullclear for proper styling
+ middlesection += fullclear
+
with Html("div", class_ = "subsection", id = "References") as section:
body += section
section += Html("h4", _("References"), inline = True)
- # begin ordered list
ordered = Html("ol")
section += ordered