Skip to content

Commit

Permalink
Adds Bing Maps
Browse files Browse the repository at this point in the history
* Removed OSM Tiles@Home. It was shutdown and no longer supported -
http://wiki.openstreetmap.org/wiki/Tiles@home
* Fixed the OSM CycleMap layers. Closes #403
* Deleted Yahoo API Key column in the settings table - Yahoo Maps no
longer supported
* Upgraded the DB version to 84
  • Loading branch information
Emmanuel Kala committed Apr 20, 2012
1 parent 45e7bbc commit c0eae45
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 71 deletions.
100 changes: 36 additions & 64 deletions application/helpers/map.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,33 +49,43 @@ public static function layers_js($all = FALSE)
//++ Bing doesn't have the first argument
if ($layer->openlayers == "Bing")
{
$js .= "var ".$layer->name." = new OpenLayers.Layer.".$layer->openlayers."({ \n";
// Options for the Bing layer constructor
$bing_options = "{\n"
. "\t name: \"".$layer->data['name']."\",\n"
. "\t type: \"".$layer->data['type']."\",\n"
. "\t key: \"".$layer->data['key']."\"\n"
. "}";

$js .= "var ".$layer->name." = new OpenLayers.Layer.".$layer->openlayers."($bing_options);\n\n";
}
else
{
$js .= "var ".$layer->name." = new OpenLayers.Layer.".$layer->openlayers."(\"".$layer->title."\", { \n";
}

foreach ($layer->data AS $key => $value)
{
if ( ! empty($value)
AND $key != 'baselayer'
AND ($key == 'attribution' AND $layer->openlayers == 'XYZ')
AND $key != 'url')
foreach ($layer->data AS $key => $value)
{
if ($key == "type")
{
$js .= " ".$key.": ".$value.",\n";
}
else
if
( ! empty($value)
AND $key != 'baselayer'
AND ($key == 'attribution' AND $layer->openlayers == 'XYZ')
AND $key != 'url'
)
{
$js .= " ".$key.": '".urlencode($value)."',\n";
if ($key == "type")
{
$js .= " ".$key.": ".$value.",\n";
}
else
{
$js .= " ".$key.": '".urlencode($value)."',\n";
}
}
}
}

$js .= " sphericalMercator: true,\n";
$js .= " maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34)});\n\n";
$js .= " sphericalMercator: true,\n";
$js .= " maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34)});\n\n";
}

}
else
{
Expand All @@ -93,10 +103,13 @@ public static function layers_js($all = FALSE)

foreach ($layer->data AS $key => $value)
{
if ( ! empty($value)
if
(
! empty($value)
AND $key != 'baselayer'
AND ($key == 'attribution' AND $layer->openlayers == 'XYZ')
AND $key != 'url')
AND $key != 'url'
)
{
if ($key == "type")
{
Expand Down Expand Up @@ -324,7 +337,7 @@ public static function base($layer_name = NULL)
'name' => 'Bing-Road',
'baselayer' => TRUE,
'key' => Kohana::config('settings.api_live'),
'type' => '\'Road\'',
'type' => 'Road',
);
$layers[$layer->name] = $layer;

Expand All @@ -340,7 +353,7 @@ public static function base($layer_name = NULL)
'name' => 'Bing-Hybrid',
'baselayer' => TRUE,
'key' => Kohana::config('settings.api_live'),
'type' => '\'AerialWithLabels\'',
'type' => 'AerialWithLabels',
);
$layers[$layer->name] = $layer;

Expand All @@ -356,7 +369,7 @@ public static function base($layer_name = NULL)
'name' => 'Bing-Satellite',
'baselayer' => TRUE,
'key' => Kohana::config('settings.api_live'),
'type' => '\'Aerial\'',
'type' => 'Aerial',
);
$layers[$layer->name] = $layer;

Expand All @@ -377,28 +390,11 @@ public static function base($layer_name = NULL)
);
$layers[$layer->name] = $layer;

// OpenStreetMap Tiles @ Home
$layer = new stdClass();
$layer->active = TRUE;
$layer->name = 'osm_tah';
$layer->openlayers = "OSM.Mapnik";
$layer->title = 'OSM Tiles@Home';
$layer->description = 'Alternative, community-rendered OpenStreetMap';
$layer->api_url = 'https://www.openstreetmap.org/openlayers/OpenStreetMap.js';
$layer->data = array(
'baselayer' => TRUE,
'attribution' => '&copy;<a href="@ccbysa">CCBYSA</a> 2010
<a href="@openstreetmap">OpenStreetMap.org</a> contributors',
'url' => 'http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png',
'type' => ''
);
$layers[$layer->name] = $layer;

// OpenStreetMap Cycling Map
$layer = new stdClass();
$layer->active = TRUE;
$layer->name = 'osm_cycle';
$layer->openlayers = "OSM.Mapnik";
$layer->openlayers = "OSM.CycleMap";
$layer->title = 'OSM Cycling Map';
$layer->description = 'OpenStreetMap with highlighted bike lanes';
$layer->api_url = 'https://www.openstreetmap.org/openlayers/OpenStreetMap.js';
Expand All @@ -411,30 +407,6 @@ public static function base($layer_name = NULL)
);
$layers[$layer->name] = $layer;

// OpenStreetMap 426 hybrid overlay
$layer = new stdClass();
$layer->active = FALSE;
$layer->name = 'osm_4326_hybrid';
$layer->openlayers = "OSM.Mapnik";
$layer->title = 'OSM Overlay';
$layer->description = 'Semi-transparent hybrid overlay. Projected into
WSG84 for use on non spherical-mercator maps.';
$layer->api_url = 'https://www.openstreetmap.org/openlayers/OpenStreetMap.js';
$layer->data = array(
'baselayer' => FALSE,
'attribution' => '&copy;<a href="@ccbysa">CCBYSA</a> 2010
<a href="@openstreetmap">OpenStreetMap.org</a> contributors',
'url' => 'http://oam.hypercube.telascience.org/tiles',
'params' => array(
'layers' => 'osm-4326-hybrid',
),
'options' => array(
'isBaseLayer' => FALSE,
'buffer' => 1,
),
'type' => ''
);
$layers[$layer->name] = $layer;

// Add Custom Layers
// Filter::map_base_layers
Expand Down
10 changes: 7 additions & 3 deletions application/hooks/2_settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
Kohana::config_set('settings.default_map_all', $settings->default_map_all);
Kohana::config_set('settings.default_map_all_icon_id', $settings->default_map_all_icon_id);
Kohana::config_set('settings.api_google', $settings->api_google);
Kohana::config_set('settings.api_yahoo', $settings->api_yahoo);
Kohana::config_set('settings.api_live', $settings->api_live);
Kohana::config_set('settings.api_akismet', $settings->api_akismet);
Kohana::config_set('settings.default_city', $settings->default_city);
Kohana::config_set('settings.default_country', $settings->default_country);
Expand Down Expand Up @@ -94,8 +94,12 @@

// And in case you want to display all maps on one page...
$api_google = $settings->api_google;
$api_yahoo = $settings->api_yahoo;
Kohana::config_set('settings.api_url_all', '<script src="https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6"></script><script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=' . $api_yahoo . '"></script><script src="https://maps.google.com/maps/api/js?v=3.2&amp;sensor=false" type="text/javascript"></script>'.html::script('https://www.openstreetmap.org/openlayers/OpenStreetMap.js'));
$api_live = $settings->api_live;
Kohana::config_set('settings.api_url_all',
"<script type=\"text/javascript\" src=\"https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6\"></script>\n"
."<script type=\"text/javascript\" src=\"https://maps.google.com/maps/api/js?v=3.2&amp;sensor=false\"></script>\n"
. html::script('https://www.openstreetmap.org/openlayers/OpenStreetMap.js')
);

// Additional Mime Types (KMZ/KML)
Kohana::config_set('mimes.kml', array('text/xml'));
Expand Down
5 changes: 5 additions & 0 deletions sql/upgrade83-84.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE `settings` DROP `api_yahoo`;

This comment has been minimized.

Copy link
@rjmackay

rjmackay Apr 22, 2012

Contributor

I got an error running this line:

ERROR 1091 (42000) at line 1: Can't DROP 'api_yahoo'; check that column/key exists

Looks like it should have been fine - maybe I just run something twice, but something to check


UPDATE `settings` SET `api_live` = 'Apumcka0uPOF2lKLorq8aeo4nuqfVVeNRqJjqOcLMJ9iMCTsnMsNd9_OvpA8gR0i' WHERE `id` = '1';

UPDATE `settings` SET `db_version` = 84;
7 changes: 3 additions & 4 deletions sql/ushahidi.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1312,7 +1312,6 @@ CREATE TABLE IF NOT EXISTS `settings` (
`default_map_all` varchar(20) NOT NULL DEFAULT 'CC0000',
`default_map_all_icon_id` int(11) DEFAULT NULL,
`api_google` varchar(200) DEFAULT NULL,
`api_yahoo` varchar(200) DEFAULT NULL,
`api_live` varchar(200) DEFAULT NULL,
`api_akismet` varchar(200) DEFAULT NULL,
`default_country` int(11) DEFAULT NULL,
Expand Down Expand Up @@ -1357,8 +1356,8 @@ CREATE TABLE IF NOT EXISTS `settings` (
--
-- Dumping data for table `settings`
--
INSERT INTO `settings` (`id`, `site_name`, `api_google`, `api_yahoo`, `api_live`, `default_country`, `default_city`, `default_lat`, `default_lon`, `default_zoom`, `items_per_page`, `items_per_page_admin`, `blocks`, `date_modify`) VALUES
(1, 'Ushahidi', 'ABQIAAAAjsEM5UsvCPCIHp80spK1kBQKW7L4j6gYznY0oMkScAbKwifzxxRhJ3SP_ijydkmJpN3jX8kn5r5fEQ', '5CYeWbfV34E21JOW1a4.54Mf6e9jLNkD0HVzaKoQmJZi2qzmSZd5mD8X49x7', NULL, 115, 'nairobi', '-1.2873000707050097', '36.821451182008204', 13, 5, 20, 'reports_block|news_block', '2008-08-25 10:25:18');
INSERT INTO `settings` (`id`, `site_name`, `api_google`, `api_live`, `default_country`, `default_city`, `default_lat`, `default_lon`, `default_zoom`, `items_per_page`, `items_per_page_admin`, `blocks`, `date_modify`) VALUES
(1, 'Ushahidi', 'ABQIAAAAjsEM5UsvCPCIHp80spK1kBQKW7L4j6gYznY0oMkScAbKwifzxxRhJ3SP_ijydkmJpN3jX8kn5r5fEQ', 'Apumcka0uPOF2lKLorq8aeo4nuqfVVeNRqJjqOcLMJ9iMCTsnMsNd9_OvpA8gR0i', 115, 'nairobi', '-1.2873000707050097', '36.821451182008204', 13, 5, 20, 'reports_block|news_block', '2008-08-25 10:25:18');
-- --------------------------------------------------------

/**
Expand Down Expand Up @@ -1450,4 +1449,4 @@ CREATE TABLE IF NOT EXISTS `verified` (
*
*/
UPDATE `settings` SET `ushahidi_version` = '2.2.1' WHERE `id`=1 LIMIT 1;
UPDATE `settings` SET `db_version` = '83' WHERE `id` = 1 LIMIT 1;
UPDATE `settings` SET `db_version` = '84' WHERE `id` = 1 LIMIT 1;

0 comments on commit c0eae45

Please sign in to comment.