Changeset 33126


Ignore:
Timestamp:
2019-05-31T21:35:03+12:00 (5 years ago)
Author:
wy59
Message:

Incremental changes following previous commit. This time the code is more backwards compatible with older collections that contain only Latitude and Longitude meta. In such cases, we now ADDITIONALLY add Coordinate (and Coordshort) meta, while still also outputting Lat and Lng meta. The JS and XSL code however now prefers to work with Coordinate meta where present.

Location:
main/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/doc.pm

    r33125 r33126  
    11361136            my $metaMap = $self->get_metadata_hashmap($section); ### TODO: metaMap not used. Unnecesssary step? (Called function has no side-effects.)
    11371137        }
     1138       
     1139        if($field =~ m/^(.+\.)?Longitude$/) {
     1140            # if we are dealing with Longitude meta, we should 1. have Latitude meta; 2. already have processed Latitude meta
     1141            # in that case, add both Lat and Lng of this section as a Coordinate meta
     1142            my $latitude = $self->get_metadata_element ($section, "Latitude");         
     1143            # TODO: would like all Longitude info together followed by all Coordinate info, but the following will add all coord info meta and end of this function will add Longitude meta
     1144            $self->processCoordinate($section_ptr, $latitude, $value); # value is Longitude
     1145        }
    11381146    }
    11391147
     
    12061214                print STDERR "cos $centre_lat is $cos_lat\n";
    12071215
    1208                 $self->processCoordinate($section_ptr, $lat_north, $lng_east);             
     1216                $self->processCoordinate($section_ptr, $lat_north, $lng_east);
    12091217                $self->processCoordinate($section_ptr, $lat_south, $lng_east);
    12101218                $self->processCoordinate($section_ptr, $lat_south, $lng_west);
  • main/trunk/greenstone3/web/interfaces/default/js/map-scripts.js

    r33125 r33126  
    2525    {
    2626        console.log("@@@ JSON node div html: " + jsonNodeDiv.html());
    27        
    2827        var jsonNodes = eval(jsonNodeDiv.html());
     28       
    2929        if(jsonNodes && jsonNodes.length > 0)
    3030        {
     
    337337        }
    338338
    339         if(!doc.lat) {
     339        if(doc.coord) {
    340340            var coordInfo = getLatLngForCoord(doc.coord);
    341341            bounds.extend(new google.maps.LatLng(coordInfo.lat, coordInfo.lng));
     
    463463        clearInterval(_intervalHandle);
    464464        _intervalHandle = null;
    465         if(!doc.lat) {
     465        if(doc.coord) {
    466466            var coordInfo = getLatLngForCoord(doc.coord);
    467467            _map.panTo(new google.maps.LatLng(coordInfo.lat, coordInfo.lng));
     
    491491{
    492492    var pos;
    493     if(doc.lat) {
     493    if(doc.coord) {
     494        var coordInfo = getLatLngForCoord(doc.coord);           
     495        pos = new google.maps.LatLng(coordInfo.lat,coordInfo.lng);     
     496    } else {
    494497        pos = new google.maps.LatLng(doc.lat,doc.lng);
    495     } else {
    496         var coordInfo = getLatLngForCoord(doc.coord);           
    497         pos = new google.maps.LatLng(coordInfo.lat,coordInfo.lng);
    498498    }
    499499   
  • main/trunk/greenstone3/web/interfaces/default/transform/map-tools.xsl

    r33125 r33126  
    2828      <xsl:text disable-output-escaping="yes">"title":"</xsl:text>
    2929      <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
    30       <xsl:text disable-output-escaping="yes">",</xsl:text>
     30      <xsl:text disable-output-escaping="yes">"</xsl:text>
    3131      <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
     32          <xsl:text disable-output-escaping="yes">,</xsl:text>
    3233          <xsl:text disable-output-escaping="yes">"lat":</xsl:text>
    3334          <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/>
     
    3738      </xsl:if>
    3839      <xsl:if test="metadataList/metadata[@name = 'Coordinate']">
     40        <xsl:text disable-output-escaping="yes">,</xsl:text>
    3941        <xsl:text disable-output-escaping="yes">"coord":"</xsl:text>       
    4042        <xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Coordinate']"/>
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/document.xsl

    r33125 r33126  
    847847                            <xsl:text>{</xsl:text>
    848848                            <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text>
    849                             <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/><xsl:text disable-output-escaping="yes">",</xsl:text>
     849                            <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
     850                            <xsl:text disable-output-escaping="yes">"</xsl:text>
    850851                            <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
     852                                <xsl:text disable-output-escaping="yes">,</xsl:text>
    851853                                <xsl:text disable-output-escaping="yes">"lat":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/><xsl:text>,</xsl:text>
    852854                                <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
    853855                            </xsl:if>
    854856                            <xsl:if test="metadataList/metadata[@name = 'Coordinate']">
     857                                <xsl:text disable-output-escaping="yes">,</xsl:text>
    855858                                <xsl:text disable-output-escaping="yes">"coord":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Coordinate']"/>
    856859                                <xsl:text disable-output-escaping="yes">"</xsl:text>
     
    869872                            <xsl:text>{</xsl:text>
    870873                            <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@selectedNode"/><xsl:text disable-output-escaping="yes">",</xsl:text>
    871                             <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/><xsl:text disable-output-escaping="yes">",</xsl:text>
     874                            <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/>
     875                            <xsl:text disable-output-escaping="yes">"</xsl:text>
    872876                            <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">
     877                                <xsl:text disable-output-escaping="yes">,</xsl:text>
    873878                                <xsl:text disable-output-escaping="yes">"lat":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/><xsl:text>,</xsl:text>
    874879                                <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/>
    875880                            </xsl:if>
    876881                            <xsl:if test="metadataList/metadata[@name = 'Coordinate']">
     882                                <xsl:text disable-output-escaping="yes">,</xsl:text>
    877883                                <xsl:text disable-output-escaping="yes">"coord":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Coordinate']"/>
    878884                                <xsl:text disable-output-escaping="yes">"</xsl:text>
Note: See TracChangeset for help on using the changeset viewer.