]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/osm.pm
osm: add optional google maps support
[git.ikiwiki.info.git] / IkiWiki / Plugin / osm.pm
index 21d1dce3f2f9692373a4f582009e8570a8cf9311..d86dbd66ec9d992aeb33243e95d64357fdd20d42 100644 (file)
@@ -74,7 +74,13 @@ sub getsetup () {
                        safe => 0,
                        rebuild => 1,
                },
-
+               osm_google_apikey => {
+                       type => "string",
+                       example => "",
+                       description => "Google maps API key, Google layer not used if missing, see https://code.google.com/apis/console/ to get an API key",
+                       safe => 1,
+                       rebuild => 1,
+               },
 }
 
 sub register_rendered_files {
@@ -144,6 +150,7 @@ sub preprocess {
                lat => $lat,
                lon => $lon,
                href => $href,
+               google_apikey => $config{'osm_google_apikey'},
        };
        return "<div id=\"mapdiv-$name\"></div>";
 }
@@ -527,6 +534,7 @@ sub cgi($) {
                zoom => "urlParams['zoom']",
                fullscreen => 1,
                editable => 1,
+               google_apikey => $config{'osm_google_apikey'},
        );
        print "</script>";
        print "</body></html>";
@@ -537,9 +545,13 @@ sub cgi($) {
 sub embed_map_code(;$) {
        my $page=shift;
        my $olurl = $config{osm_openlayers_url} || "http://www.openlayers.org/api/OpenLayers.js";
-       return '<script src="'.$olurl.'" type="text/javascript" charset="utf-8"></script>'.
+       my $code = '<script src="'.$olurl.'" type="text/javascript" charset="utf-8"></script>'."\n".
                '<script src="'.urlto("ikiwiki/osm.js", $page).
                '" type="text/javascript" charset="utf-8"></script>'."\n";
+       if ($config{'osm_google_apikey'}) {
+           $code .= '<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='.$config{'osm_google_apikey'}.'&sensor=false" type="text/javascript" charset="utf-8"></script>';
+       }
+       return $code;
 }
 
 sub map_setup_code($;@) {