Integration with Google Maps

View: New views
7 Messages — Rating Filter:   Alert me  

Integration with Google Maps

by Steven Birnam :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Has anyone integrated the Places data in GRAMPS with Google Maps or Mapedia?

I am looking to implement a geo-mapping link, so that when the
coordinates are entered for a place, when the reader views a GRAMPS
report page, and clicks on the coordinates for a place, it will launch
an aerial view of the place, like GoogleMaps, etc, for the place in
question.

Any ideas of how best to accomplish this would be appreciated - and if
anyone has ideas of what views to call, please let me know.

Steven Birnam

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users

Re: Integration with Google Maps

by Alan Pine :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Have a look at this:
http://www.familytreeassistant.com/

I don't use it - mentioned on another list with rave reviews.

Alan.

Steven Birnam wrote:

> Has anyone integrated the Places data in GRAMPS with Google Maps or Mapedia?
>
> I am looking to implement a geo-mapping link, so that when the
> coordinates are entered for a place, when the reader views a GRAMPS
> report page, and clicks on the coordinates for a place, it will launch
> an aerial view of the place, like GoogleMaps, etc, for the place in
> question.
>
> Any ideas of how best to accomplish this would be appreciated - and if
> anyone has ideas of what views to call, please let me know.
>
> Steven Birnam
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Gramps-users mailing list
> Gramps-users@...
> https://lists.sourceforge.net/lists/listinfo/gramps-users
>
>
>  

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users

Parent Message unknown Re: Integration with Google Maps

by Paul Blair :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Steven was seeking something actually integrated with Gramps.

Mapping has become part of many commercial products, and there is an
excellent implementation in phpGedView (open source).

Having watched this latter over a couple of years, the main problem is that
it requires a lot of effort/consistency/attention to detail to get it right.
The mapping services are quite rigid in how places are named, and users must
observe there conditions. And there is always the problem of
no-longer-current nomenclature.

Actually coding (my experience is limited to PHP) is not difficult. As the
mapping is an on-line service, users need a good internet connection.

Paul  


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users

Re: Integration with Google Maps

by Greg Troxel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

"Paul Blair" <pblair30@...> writes:

> Actually coding (my experience is limited to PHP) is not difficult. As the
> mapping is an on-line service, users need a good internet connection.

And because mapping is an on-line service - there are serious privacy
issues, and any map integration should be off by default.  IMHO there
should be a warning screen that explains that one's addresses are being
sent off to $SERVICE when this is enabled.


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users

Re: Integration with Google Maps

by Thomas Weichmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Steve, All,

I've come up with some code to make this work in the Narrative Web Site
report.  If you go to $grampsroot/share/gramps/plugins and edit
NarrativeWeb.py.  Add the attached text at line 1213.  This will look at your
place, and if there is a lat and long listed, create a link to that place in
Google Maps, Wikimapia and OpenStreetMap.

I've never submitted code before, so if someone can either tell me how to add
this to the project or simply submit it for me that would be great.

Tom Weichmann



On Thursday 24 July 2008 11:37:49 pm Steven Birnam wrote:

> Has anyone integrated the Places data in GRAMPS with Google Maps or
> Mapedia?
>
> I am looking to implement a geo-mapping link, so that when the
> coordinates are entered for a place, when the reader views a GRAMPS
> report page, and clicks on the coordinates for a place, it will launch
> an aerial view of the place, like GoogleMaps, etc, for the place in
> question.
>
> Any ideas of how best to accomplish this would be appreciated - and if
> anyone has ideas of what views to call, please let me know.
>
> Steven Birnam
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge Build the coolest Linux based applications with Moblin SDK & win
> great prizes Grand prize is a trip for two to an Open Source event anywhere
> in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Gramps-users mailing list
> Gramps-users@...
> https://lists.sourceforge.net/lists/listinfo/gramps-users


- Places - Buffalo, Erie, New York, USA

Places:

Buffalo, Erie, New York, USA

City Buffalo
County Erie
State/Province New York
Country USA
Latitude 42.8864
Longitude -78.8781
Maps: Google Maps   Wikimapia   OpenStreetMap  

[narrative.css]

/*
----------------------------------------------------------------------------
GRAMPS Cascading Style Sheet
Style Name: Nebraska
Style Author: Jason Simanek (2008)
----------------------------------------------------------------------------

This website was created with GRAMPS
----------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional genealogy program,
and a wiki open to all. It is a community project, created, developed and governed by genealogists.

Go to www.gramps-project.org to learn more!

License
----------------------------------------------------------------------------
Copyright 2008 Jason M. Simanek
This file is part of the GRAMPS program.

GRAMPS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 2 of the License.

GRAMPS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GRAMPS. If not, see <http://www.gnu.org/licenses/>.
----------------------------------------------------------------------------


Color Palette
----------------------------------------------------------------------------
brown darkest #453619
brown dark #542
brown #A97
brown light #C1B398
brown lightest #F6F2EE
gray #696969
green #5D835F
----------------------------------------------------------------------------
*/

/* ---------------------------------------------------------------------------- */
/* General Element Styles */
/* ---------------------------------------------------------------------------- */
body {
        color:#000;
        margin:0;
        padding:0;
        background-color:#fff;
}
div {
        margin:0;
        padding:0;
}
table {
        border:none;
        border-collapse:collapse;
}
th {
        padding:1px 3em 1px 0.5em;
        font-weight: bold;
        text-align: left;
}
td {
        vertical-align:top;
        padding:0;
}
img {
        border:none;
        margin:0;
}
.thumbnail a:hover {
        background:none;
}
.content {
        background-color:#FFF;
}
.content div.snapshot {
        float:right;
        margin:1.6em;
        padding:0;
        background:none;
}
.content div.snapshot div.thumbnail {
        margin:0;
        padding:0;
        background:none;
}
.fullclear {
        width:100%;
        height:1px;
        margin:0;
        padding:0;
        clear:both;
}

/* ------------------------------------------------------------------------------ */
/* General Text Styles */
/* ------------------------------------------------------------------------------ */
h1 {
        font:normal 2em/1.2em serif;
}
h2 {
        display:none;
}
h3 {
        font:normal 2em/1.2em serif;
        text-align:left;
        margin:0;
        padding:.5em 20px .2em 20px;
}
h4 {
        font:normal 1.2em/1.2em serif;
        color:white;
        margin:0;
        padding:.2em 0 .2em 20px;
        background-color:#C1B398;
        border-bottom:solid 1px #542;
}
h5, h6 {
        font:normal 1em/1.2em serif;
        font-style:italic;
        margin:1.3em 0 .5em 1em;
}
p {
        font:normal 1.1em/1.4em serif;
}
p#description {
        color:#542;
        max-width:800px;
        margin:0;
        padding:1em 20px;
        background-color:#FFF;
}
p a:link {
        text-decoration:underline;
}
sup {
        line-height:0;
}
ol {
        font:normal .9em/1.6em sans-serif;
        margin-top:0;
        margin-bottom:0;
        padding-top:.5em;
        padding-bottom:0;
}
ol li a {
        text-decoration:none;
}
ol li a:hover {
        text-decoration:underline;
}
a:link {
        color:#542;
}
a:visited {
        color:#542;
}
a:hover {
        color:#542;
        text-decoration:underline;
}

/* ------------------------------------------------------------------------------ */
/* Header/Navigation Styles */
/* ------------------------------------------------------------------------------ */
#Header {
        padding:0 0 .9em 0;
        margin:0;
        background-color:#542;
        border-bottom:solid 1px #453619;
}
#SiteTitle {
        color:#FFF;
        margin:0;
        padding:.5em 0 0 20px;
}
#GRAMPSinfo {
        font:normal .8em/1.2em sans-serif;
        float:right;
        margin:0;
        padding:.7em .8em;
        color:#A97;
}
#GRAMPSinfo a {
        color:#fff;
        text-decoration:none;
}
#GRAMPSinfo a:hover {
        text-decoration:underline;
        background:none;
}
.grampsid {
        font:normal .8em/1.2em monospace;
        color:#696969;
}
p#user_header {
        font-size:1.3em;
        text-align:left;
        color:#A97;
        margin:0;
        padding:.2em 0 .6em 20px;
        background-color:#542;
}
#Navigation {
        margin:0;
        padding:0;
}
#Navigation ol {
        list-style:none;
        min-width:770px;
        height:32px;
        margin:0;
        padding:0 0 0 9px;
        background-color:#A97;
        border-bottom:solid 1px #542;
}
#Navigation ol li {
        margin:0;
        float:left;
}
#Navigation ol li a {
        display:block;
        float:left;
        font:normal 16px/100% serif;
        color:#542;
        text-decoration:none;
        margin:0;
        padding:8px 13px;

}
#Navigation ol li a:hover {
        background-color:#C1B398;
        border-bottom:solid 1px #542;
}
#Navigation ol li#CurrentSection a {
        font-size:19px;
        margin-top:-6px;
        padding-top:11px;
        padding-bottom:8px;
        border-right:solid 1px #542;
        border-left:solid 1px #542;
        border-bottom:solid 1px #FFF;
        background-color:#FFF;
}
#Navigation ol li#CurrentSection a:hover {
        background-color:#FFF;
}

/* ------------------------------------------------------------------------------ */
/* Footer Styles */
/* ------------------------------------------------------------------------------ */
#footer {
        width:100%;
        color:#A97;
        margin:0;
        padding:0;
        clear:both;
        background-color:#542;
        border-top:solid 8px #A97;
}
#user_footer {
        width:70%;
        float:left;
        margin:1em;
}
#user_footer p {
        font:normal 1em/1.2em serif;
        color:#A97;
        margin:0;
        padding:0;
}
#copyright {
        margin:1em;
        font:normal .9em/1.2em sans-serif;
        float:right;
}
#copyright p {
        margin:0;
}
#copyright a:hover {
        background:none;
}

/* ------------------------------------------------------------------------------ */
/* Main Table Styles */
/* ------------------------------------------------------------------------------ */
table.infolist {
        width:100%;
        margin:0;
        padding:0;
        background-color:#F6F2EE;
}
table.infolist tr th {
        font:normal 1.1em/1.2em serif;
        color:#FFF;
        margin:0;
        padding:.2em 10px;
        background-color:#A97;
        border-bottom:solid 1px #542;
}
table.infolist tr th a:hover {
        background-color:#C1B398;
}
table.infolist tr td {
        font:normal 1.1em/1.4em serif;
        vertical-align:middle;
        padding:.1em 10px;
}
table.infolist tr td a {
        display:block;
        text-decoration:none;
}
table.infolist tr.BeginLetter td, table.infolist tr.BeginSurname td {
        border-top:solid 1px #C1B398;
}
table.infolist tr td.ColumnLetter {
        width:3%;
        text-align:center;
}
table.infolist tbody tr td.ColumnBirth {
        font-size:.9em;
        color:#5D835F;
        width:10%;
}
table.infolist tbody tr td.ColumnDeath {
        font-size:.9em;
        width:10%;
}
table.infolist tbody tr td.ColumnRowLabel {
        width:2%;
        color:#696969;
        padding-left:20px;
}
table.infolist tbody tr td.ColumnType {
        width:6%;
        padding-left:20px;
}
table.infolist tbody tr td.ColumnPartner {
        font-size:.9em;
}
table.infolist tbody tr td.ColumnParents {
        font-size:.9em;
}
table.infolist tbody tr td.ColumnParents span.father, table.infolist tbody tr td.ColumnParents span.mother {
        display:block;
}
table.infolist tbody tr td.ColumnParents span.mother:before {
        content:"+ ";
}

/* ------------------------------------------------------------------------------ */
/* Surnames Styles */
/* ------------------------------------------------------------------------------ */
#Surnames {  }
#SurnameDetail p#description { padding-top:0; }
table.surnamelist tr thead th.ColumnSurname, #Surnames table.surnamelist tbody tr td.ColumnSurname {
        width:50%;
}
table.surnamelist tr th {
        padding:0;
}
table.surnamelist tr th a, table.surnamelist tr th a:visited {
        display:block;
        color:#FFF;
        text-align:left;
        text-decoration:none;
        padding:.2em 10px;
}
table.surnamelist tr th:hover {
        background-color:#C1B398;
}
table.surnamelist thead tr th.ColumnLetter {
        padding-left:20px;
        padding-right:10px;
}
table#SortByName thead tr th.ColumnSurname, table#SortByCount thead tr th.ColumnQuantity {
        background-color:#C1B398;
}
table#SortByName thead tr th.ColumnSurname a:after, table#SortByCount thead tr th.ColumnQuantity a:after {
        content:" ↓";
}
table#SortByName tbody tr td.ColumnSurname {
        padding:0;
        background-color:#FFF;
}
table#SortByName tbody tr td.ColumnSurname a {
        display:block;
        padding:.1em 10px .3em 10px;
}
table#SortByCount tbody tr td.ColumnQuantity {
        background-color:#FFF;
}
table.surnamelist tbody tr td.ColumnSurname:hover, table#SortByName tbody tr td.ColumnSurname:hover {
        background-color:#C1B398;
}
table.surname {
        border-bottom:solid 1px #A97;
}
table.surname tbody tr td {
        border-bottom:dashed 1px #C1B398;
}
table.surname thead tr th.ColumnName {
        width:20%;
        padding-left:20px;
}
table.surname tbody tr td.ColumnName {
        width:20%;
        padding:0;
        background-color:#FFF;
}
table.surname tbody tr td.ColumnName a {
        display:block;
        padding:.6em 10px .6em 20px;
}
table.surname tbody tr td.ColumnName a span.grampsid {
        display:none;
}
table.surname tbody tr td.ColumnName:hover {
        background-color:#C1B398;
}
table.surname thead tr th.ColumnParents, table.surname tbody tr td.ColumnParents {
        width:25%;
}

/* ------------------------------------------------------------------------------ */
/* Individuals Styles */
/* ------------------------------------------------------------------------------ */
#Individuals {  }
#Individuals table.individuallist {
        border-bottom:solid 1px #A97;
}
#Individuals table.individuallist tbody tr td {
        border-bottom:dashed 1px #C1B398;
}
#Individuals table.individuallist tbody tr td a:hover {
        text-decoration:none;
}
table.individuallist tbody tr td.ColumnSurname a:hover, table.individuallist tbody tr td.ColumnSurname a:active {
        cursor:default;
        color:black;
        background:none;
}
table.individuallist tbody tr td.ColumnName {
        padding:0;
        background-color:#FFF;
}
table.individuallist tbody tr td.ColumnName a {
        display:block;
        padding:.6em 10px;
        vertical-align:middle;
}
table.individuallist tbody tr td.ColumnName a:hover {
        background-color:#C1B398;
}
#IndividualDetail div table.infolist tr td, #Individuals div table.infolist tr td p {
        font:normal .9em/1.2em sans-serif;
        vertical-align:top;
}
#IndividualDetail div table.infolist tr td a, #Individuals div table.infolist tr td p a {
        display:inline;
}
#IndividualDetail table.infolist tr td a:hover {
        text-decoration:underline;
}
#IndividualDetail table.infolist tbody tr td.ColumnAttribute {
        width:10%;
        color:#696969;
}

/* ------------------------------------------------------------------------------ */
/* Sources Styles */
/* ------------------------------------------------------------------------------ */
#Sources {  }
#Sources table.infolist tbody tr td.ColumnRowLabel {
        padding-bottom:0;
}
#Sources table.infolist tbody tr td.ColumnName {
        padding:0;
}
#Sources table.infolist tbody tr td.ColumnName a {
        font-size:.9em;
        padding:.1em 10px .3em 10px;
}
#Sources table.infolist tbody tr td.ColumnName a:hover {
        background-color:#C1B398;
}
#SourceDetail div#references ol li {
        padding-bottom:.5em;
}

/* ------------------------------------------------------------------------------ */
/* Places Styles */
/* ------------------------------------------------------------------------------ */
#Places {  }
#Places table.infolist tbody tr td.ColumnName {
        padding:0;
}
#Places table.infolist tbody tr td.ColumnName a {
        padding:.1em 10px .3em 10px;
}
#Places table.infolist tbody tr td.ColumnName a:hover {
        background-color:#C1B398;
}

/* ------------------------------------------------------------------------------ */
/* Gallery Styles */
/* ------------------------------------------------------------------------------ */
#Gallery {  }
#Gallery table.infolist tbody tr td.ColumnRowLabel, #Gallery table.infolist tbody tr td.ColumnDate {
        padding-bottom:0;
}
#Gallery table.infolist tbody tr td.ColumnName {
        padding:0;
}
#Gallery table.infolist tbody tr td.ColumnName a {
        padding:.1em 10px .3em 10px;
}
#Gallery table.infolist tbody tr td.ColumnName a:hover {
        background-color:#C1B398;
}
#GalleryNav {
        font:normal 1em/1em sans-serif;
        margin:1em 0 0 0;
        padding:1.2em 0 1.4em 0;
        text-align:center;
}
#GalleryNav a {
        font-weight:bold;
        text-decoration:none;
        border:solid 1px #542;
}
#GalleryNav a:hover {
        background-color:#F6F2EE;
}
#GalleryNav a#Previous {
        padding:.5em .7em .3em .7em;
}
#GalleryNav a#Next {
        padding:.5em 1.9em .3em 1.9em;
}
#GalleryPages {
        margin:0 1em;
}
#GalleryCurrent {
        font:bold 1.2em/1em sans-serif;
}
#GalleryTotal {
        font-weight:normal;
}
#GalleryDisplay {
        text-align:center;
}
#GalleryDisplay img {
        margin:0 auto;
        border:solid 1px #542;
}
#GalleryDetail div#summaryarea{
        margin:0;
        padding:2em 0 0 0;
}
#GalleryDetail div#summaryarea h3 {
        font:normal 1.2em/1.2em serif;
        text-align:center;
}
#GalleryDetail div h4 {
        margin-top:0;
}
#GalleryDetail div#summaryarea table.gallery {
        padding-bottom:0;
        margin-top:1.5em;
        margin-bottom:0;
        background-color:#F6F2EE;
        border-style:solid;
        border-width:8px 0 0 0;
        border-color:#C1B398;
}

/* ------------------------------------------------------------------------------ */
/* Contact Styles */
/* ------------------------------------------------------------------------------ */
#Contact #summaryarea {
        width:500px;
        margin:0 auto;
        padding:3em;
        background-color:#F1ECE2;
}
#Contact #summaryarea img {
        float:right;
        margin:0;
}
#researcher {
        font:normal 1.5em/1.4em serif;
        margin-top:.3em;
}
#researcher h3 {
        font:normal 1.2em/1.4em serif;
        padding:0;
}
#researcher span {
        font:normal .9em/1.4em serif;
        display:block;
        float:left;
        margin-right:.4em;
}
#streetaddress {
        width:70%;
}
#city:after {
        content:",";
}
#country {
        clear:left;
}
#email {
        clear:left;
}
#email a {
        text-decoration:none;
}
#email a:hover {
        text-decoration:underline;
}

/* ------------------------------------------------------------------------------ */
/* SubSection Styles */
/* ------------------------------------------------------------------------------ */
#Home, #Introduction, #Contact {
        padding:2em 0 3em 0;
}
#Download {
        padding:1em 0 3em 0;
}
#Home p, #Introduction p, #Download p {
        margin:0 20px 1em 20px;
}
#Home img, #Introduction img, #Download img {
        float:right;
        margin:0;
        padding:0 20px 3em 2em;
}
div.subsection{
        padding-bottom:.5em;
        background-color:#F6F2EE;
}
div.subsection h4 {
        margin-bottom:.5em;
}
div.subsection table, div.subsection ol, div.subsection p {
        font-size:.9em;
}
div.subsection a {
        text-decoration:none;
}
div.subsection a:hover {
        text-decoration:underline;
}
div.subsection table.infolist {
        width:100%;
        margin:0;
}
#IndividualDetail div.subsection table tr td:first-child {
        padding-left:20px;
}

/* Individuals Styles : Events */
/* ------------------------------------------------------------------------------ */
div#events {
        padding-bottom:0;
}
div#events h4 {
        margin-bottom:0;
}
#IndividualDetail div#events table.infolist tbody tr td {
        padding-top:.4em;
        padding-bottom:.8em;
}
#IndividualDetail div#events table.infolist tbody tr td.ColumnAttribute {
        border-bottom:solid 1px #C1B398;
}
#IndividualDetail div#events table.infolist tbody tr td.ColumnValue {
        border-bottom:solid 1px #C1B398;
}
table.infolist tbody tr td.ColumnValue p {
        font-family:sans-serif;
        color:#696969;
        margin:.2em 0 0 2em;
}

/* SubSection Styles : Attributes */
/* ------------------------------------------------------------------------------ */

/* Individuals Styles : Parents */
/* ------------------------------------------------------------------------------ */
div#parents table.infolist {
        margin-top:.5em;
}
div#parents table.infolist tbody tr td.ColumnAttribute {
        width:19%;
}
div#parents table.infolist tbody tr td.ColumnValue ol {
        margin:0;
        padding-top:0;
}
div#parents table.infolist tbody tr td.ColumnValue ol li {
        padding-bottom:.2em;
}

/* Individuals Styles : Families */
/* ------------------------------------------------------------------------------ */
div#families table.infolist {
        margin-top:.5em;
}
div#families table.infolist tbody tr td.ColumnValue p {
        margin-top:0;
}
div#families table.infolist tbody tr td.ColumnValue ol {
        margin:0;
        padding-top:0;
}
div#families table.infolist tbody tr td.ColumnValue ol li {
        padding-bottom:.2em;
}

/* Individuals Styles : Addresses */
/* ------------------------------------------------------------------------------ */
div#addresses {
        padding-bottom:0;
}
div#addresses table.infolist tbody tr td {
        padding-top:.4em;
        padding-bottom:.4em;
}
div#addresses table.infolist tbody tr td.ColumnAttribute {
        width:30%;
        border-bottom:solid 1px #C1B398;
}
div#addresses table.infolist tbody tr td.ColumnValue {
        border-bottom:solid 1px #C1B398;
}

/* SubSection Styles : Gallery */
/* ------------------------------------------------------------------------------ */
#indivgallery h4 {
        margin-bottom:1em;
}
#indivgallery .thumbnail {
        margin:0;
    float:left;
    width:130px;
    height:150px;
    text-align:center;
}
#indivgallery .thumbnail a {
        display:block;
        margin:0;
        padding:0;
        background:none;
}
#indivgallery .thumbnail a img {
        margin:0;
        padding:0;
        border:solid 1px #542;
}
#indivgallery div.thumbnail p {
        font:normal .7em/1.4em sans-serif;
        text-align:center;
        width:80%;
        margin:0 auto;
        padding:0;
}

/* SubSection Styles : Narrative */
/* ------------------------------------------------------------------------------ */
div#narrative {
        padding-bottom:0;
}
#narrative p {
        font:normal .9em/1.4em sans-serif;
        margin-top:.5em;
        margin-bottom:0;
        padding:0 20px 1em 20px;
}

/* SubSection Styles : References */
/* ------------------------------------------------------------------------------ */

/* SubSection Styles : Source References */
/* ------------------------------------------------------------------------------ */
div#sourcerefs ol {
        list-style-type:decimal;
}
div#sourcerefs ol li ol {
        list-style-type:lower-alpha;
}

/* SubSection Styles : Summary Area */
/* ------------------------------------------------------------------------------ */
div#summaryarea {
        background:none;
}
div#summaryarea table.infolist {
        margin:0;
        padding:0;
        background:#FFF;
        border-bottom:solid .7em #FFF;
}
div#summaryarea table.infolist tr td, div#summaryarea table.infolist tr td p {
        font:normal .9em/1.2em sans-serif;
        vertical-align:top;
}
div#summaryarea table.infolist tr td a, div#summaryarea table.infolist tr td p a {
        display:inline;
}
div#summaryarea table.infolist tbody tr td.ColumnAttribute {
        width:14%;
        color:#696969;
        padding-left:20px;
}

/* SubSection Styles : Weblinks */
/* ------------------------------------------------------------------------------ */

/* Individuals Styles : Pedigree */
/* ------------------------------------------------------------------------------ */
div#pedigree {
        padding-bottom:1.2em;
}
#pedigree a {
        text-decoration:none;
}
#pedigree a:hover {
        text-decoration:underline;
}
.pedigreegen {
        font:normal .9em/1.2em sans-serif;
        list-style:none;
        margin:.5em 0 0 0;
        padding:0 0 0 20px;
}
.pedigreegen li ol {
        list-style:none;
        margin-left:.5em;
}
.pedigreegen li ol li ol {
        font:normal 1em/1.4em sans-serif;
        list-style:decimal;
        margin-left:1.6em;
}
.pedigreegen li ol li ol li ol.spouselist {
        list-style:none;
        margin-left:0;
}
.spouselist li.spouse ol {
        list-style:decimal;
        margin-left:1.6em;
}
.spouse a {
        font-weight:normal;
        font-style:normal;
        color:#A97;
}
.spouse:before {
        content: "+ ";
}
.thisperson {
        font-weight:bold;
}

/* Individuals Styles : Ancestors Tree */
/* ------------------------------------------------------------------------------ */
#tree {
        page-break-before:always;
        margin:0;
        padding:0;
        background:none;
}
#treeContainer {
        position:relative;
        z-index:1;
}
.boxbg {
        position:absolute;
        margin:0;
        padding:0;
        background:none;
}
.boxbg div a {
        position:relative;
        z-index:10;
        display:block;
        font:normal .7em/1.4em sans-serif;
        color:#542;
        text-align:center;
        text-decoration:none;
        width:148px;
        padding:5px 5px 7px 5px;
        margin-top:1em;
        margin-left:16px;
        background-color:#F6F2EE;
        border:solid 1px #542;
}
.boxbg div a:hover {
        position:relative;
        z-index:999;
        font-size:1em;
        color:#542;
        width:210px;
        margin-top:0;
        margin-left:0;
        padding:10px 4px 12px 4px;
        border:solid 2px #542;
}
.shadow {
        display:none;
}
#tree div div.bvline {
        position:absolute;
        z-index:2;
        height:1px;
        margin:0 0 0 16px;
        padding:0;
        background-color:#C1B398;
}
#tree div div.bhline {
        position:absolute;
        z-index:2;
        width:1px;
        margin:0 0 0 16px;
        padding:0;
        background-color:#C1B398;
}
.ghline, .gvline {
        display:none;
}


Add this to  NarrativeWeb.py at line 1213:

___________________CUT_______________________________________

        if place.lat and place.long:
            of.write('\t\t\t<tr>\n')
            of.write('\t\t\t\t<td class="ColumnAttribute">Maps</td>\n')
            of.write('\t\t\t\t<td class="ColumnValue">')
            of.write('\t\t\t\t\t<a href="http://maps.google.com/maps?geocode=&q=%s+%s&ie=UTF8&ll=%s,%s&z=11">Google Maps</a>  \n' % (place.lat, place.long, place.lat, place.long))
            of.write('\t\t\t\t\t<a href="http://wikimapia.org/#lat=%s&lon=%s&z=11&l=0&m=a&v=2">Wikimapia</a>  \n' % (place.lat, place.long,))
            of.write('\t\t\t\t\t<a href="http://www.openstreetmap.com/?lat=%s&lon=%s&zoom=11&layers=B00FF">OpenStreetMap</a>  \n' % (place.lat, place.long,))
            of.write('\t\t\t\t</td>')
            of.write('\t\t\t</tr>\n')

___________________CUT_______________________________________
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users

Parent Message unknown Re: Integration with Google Maps

by Thomas Weichmann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Steven,

Glad to hear from you.  I was begining to think that no one found this useful.  
I hope that it makes it into Gramps as a perminate piece of code.  

One thing though, Your link does not work for me, could you check and repost?

Best regards,

Tom W

On Tuesday 29 July 2008 08:55:32 am you wrote:

> Many thanks, Thomas:
>
> I will definitely make use of your scripts - much appreciated.
>
> My cousin, Earl, and I have been looking at the Wikipedia Geohack
> pages (when you enter Wikipedia and access the page of a location,
> like London, Paris or Zurich, the is a mapping coordinate on the page
> - clicking on the coordinate value, rather than the word coordinate,
> takes you to the Wikipedia Geohack toolset page for the specified
> location (and it does so in the language of the page,
> http://stable.toolserver.org/geohack/geohack.php, so that if a GRAMPS
> page was written in German, or French, the Geohack page would be
> accessed in the proper language. As you see, the page has a plathora
> of mapping options, not just the 2 or 3 standards - that's what makes
> linking to Geohack interesting, but presents several complications -
> the first of which would be how to simplify the user process.
>
> The idea behind mapping integration is to eliminate entering internet
> links for each map of a place specified in GRAMPS, and provide a
> simple, universal access to maps and aerial views.
>
> Your method works great (I looked at the sample page you attached.
>
> StevenB
>
> On Sat, Jul 26, 2008 at 1:39 PM, Thomas Weichmann <tomcw@...>
wrote:

> > Steve, All,
> >
> > I've come up with some code to make this work in the Narrative Web Site
> > report.  If you go to $grampsroot/share/gramps/plugins and edit
> > NarrativeWeb.py.  Add the attached text at line 1213.  This will look at
> > your place, and if there is a lat and long listed, create a link to that
> > place in Google Maps, Wikimapia and OpenStreetMap.
> >
> > I've never submitted code before, so if someone can either tell me how to
> > add this to the project or simply submit it for me that would be great.
> >
> > Tom Weichmann
> >
> > On Thursday 24 July 2008 11:37:49 pm Steven Birnam wrote:
> >> Has anyone integrated the Places data in GRAMPS with Google Maps or
> >> Mapedia?
> >>
> >> I am looking to implement a geo-mapping link, so that when the
> >> coordinates are entered for a place, when the reader views a GRAMPS
> >> report page, and clicks on the coordinates for a place, it will launch
> >> an aerial view of the place, like GoogleMaps, etc, for the place in
> >> question.
> >>
> >> Any ideas of how best to accomplish this would be appreciated - and if
> >> anyone has ideas of what views to call, please let me know.
> >>
> >> Steven Birnam
> >>
> >> ------------------------------------------------------------------------
> >>- This SF.Net email is sponsored by the Moblin Your Move Developer's
> >> challenge Build the coolest Linux based applications with Moblin SDK &
> >> win great prizes Grand prize is a trip for two to an Open Source event
> >> anywhere in the world
> >> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >> _______________________________________________
> >> Gramps-users mailing list
> >> Gramps-users@...
> >> https://lists.sourceforge.net/lists/listinfo/gramps-users
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge Build the coolest Linux based applications with Moblin SDK &
> > win great prizes Grand prize is a trip for two to an Open Source event
> > anywhere in the world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________
> > Gramps-users mailing list
> > Gramps-users@...
> > https://lists.sourceforge.net/lists/listinfo/gramps-users



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users

Re: Integration with Google Maps

by Jeff Jauregui :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Inspired by the code Tom shared, I found a way to embed Google Maps in
the "places" pages created by the Narrative Web script (as opposed to
creating a link).  The wiki page is:

http://gramps-project.org/wiki/index.php?title=Integrate_google_maps_with_narrative_web_site

It would be great if someone could follow the steps and let me know
how it works for them - it shouldn't take more than a few minutes.
The only limitation is that it relies on the latitude/longitude being
entered for a place for the map to appear.

Jeff


On Sat, Jul 26, 2008 at 1:39 PM, Thomas Weichmann <tomcw@...> wrote:

> Steve, All,
>
> I've come up with some code to make this work in the Narrative Web Site
> report.  If you go to $grampsroot/share/gramps/plugins and edit
> NarrativeWeb.py.  Add the attached text at line 1213.  This will look at your
> place, and if there is a lat and long listed, create a link to that place in
> Google Maps, Wikimapia and OpenStreetMap.
>
> I've never submitted code before, so if someone can either tell me how to add
> this to the project or simply submit it for me that would be great.
>
> Tom Weichmann
>
>
>
> On Thursday 24 July 2008 11:37:49 pm Steven Birnam wrote:
>> Has anyone integrated the Places data in GRAMPS with Google Maps or
>> Mapedia?
>>
>> I am looking to implement a geo-mapping link, so that when the
>> coordinates are entered for a place, when the reader views a GRAMPS
>> report page, and clicks on the coordinates for a place, it will launch
>> an aerial view of the place, like GoogleMaps, etc, for the place in
>> question.
>>
>> Any ideas of how best to accomplish this would be appreciated - and if
>> anyone has ideas of what views to call, please let me know.
>>
>> Steven Birnam
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge Build the coolest Linux based applications with Moblin SDK & win
>> great prizes Grand prize is a trip for two to an Open Source event anywhere
>> in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> Gramps-users mailing list
>> Gramps-users@...
>> https://lists.sourceforge.net/lists/listinfo/gramps-users
>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Gramps-users mailing list
> Gramps-users@...
> https://lists.sourceforge.net/lists/listinfo/gramps-users
>
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gramps-users mailing list
Gramps-users@...
https://lists.sourceforge.net/lists/listinfo/gramps-users