Revision cc3c9807
Added by Andreas Kohlbecker over 10 years ago
7.x/modules/cdm_dataportal/includes/maps.inc | ||
---|---|---|
44 | 44 |
* @return array |
45 | 45 |
* A drupal render array |
46 | 46 |
* |
47 |
* Similar compose function compose_distribution_map() |
|
48 |
* |
|
47 | 49 |
* @ingroup compose |
48 | 50 |
*/ |
49 | 51 |
function compose_map($occurrence_query, $distribution_query, $legend_format_query, array $event_listeners = array()) { |
50 | 52 |
|
51 |
if (variable_get('cdm_dataportal_map_openlayers', 1)) { |
|
53 |
$map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT); |
|
54 |
if ($map_settings['map_type'] == 1) { |
|
52 | 55 |
$map_html = get_openlayers_map( |
53 |
variable_get('cdm_dataportal_geoservice_display_width', 680), |
|
54 |
variable_get('cdm_dataportal_geoservice_bounding_box', FALSE), |
|
56 |
$map_settings['width'], |
|
57 |
$map_settings['height'], |
|
58 |
$map_settings['bbox'], |
|
55 | 59 |
$occurrence_query, |
56 | 60 |
$distribution_query, |
57 | 61 |
$legend_format_query, |
58 |
variable_get('cdm_dataportal_geoservice_map_caption', ''),
|
|
62 |
$map_settings['caption'],
|
|
59 | 63 |
$event_listeners |
60 | 64 |
); |
61 | 65 |
} |
62 | 66 |
else { |
63 | 67 |
$map_html = get_image_map( |
64 |
variable_get('cdm_dataportal_geoservice_display_width', 680), |
|
65 |
variable_get('cdm_dataportal_geoservice_bounding_box', FALSE), |
|
68 |
$map_settings['width'], |
|
69 |
$map_settings['height'], |
|
70 |
$map_settings['bbox'], |
|
66 | 71 |
$occurrence_query, |
67 | 72 |
$distribution_query, |
68 | 73 |
$legend_format_query, |
69 |
variable_get('cdm_dataportal_geoservice_map_caption', '')
|
|
74 |
$map_settings['caption']
|
|
70 | 75 |
); |
71 | 76 |
} |
72 | 77 |
return markup_to_render_array($map_html, 0); |
... | ... | |
91 | 96 |
|
92 | 97 |
_add_js_openlayers(); |
93 | 98 |
|
99 |
$map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT); |
|
100 |
$baseLayers = $map_settings['openlayers']['base_layers']; |
|
101 |
$gmap_api_key = variable_get('gmap_api_key', 'ABQIAAAAFho6eHAcUOTHLmH9IYHAeBRi_j0U6kJrkFvY4-OX2XYmEAa76BTsyMmEq-tn6nFNtD2UdEGvfhvoCQ'); |
|
102 |
|
|
94 | 103 |
drupal_add_js(drupal_get_path('module', 'cdm_dataportal') . '/js/map/openlayers_map.js'); |
95 | 104 |
drupal_add_js(drupal_get_path('module', 'cdm_dataportal') . '/js/map/openlayers_layers.js'); |
96 | 105 |
|
97 |
$gmap_api_key = variable_get('gmap_api_key', 'ABQIAAAAFho6eHAcUOTHLmH9IYHAeBRi_j0U6kJrkFvY4-OX2XYmEAa76BTsyMmEq-tn6nFNtD2UdEGvfhvoCQ'); |
|
98 | 106 |
|
99 |
$baseLayers = variable_get('baselayers', array()); |
|
100 | 107 |
if (!is_array($baseLayers) || count($baseLayers) == 0) { |
101 | 108 |
$baseLayers = array( |
102 | 109 |
'metacarta_vmap0' => 'Metacarta Vmap0', |
... | ... | |
142 | 149 |
'" . $edit_map_service['version'] . "', |
143 | 150 |
{ |
144 | 151 |
legendPosition: 3, |
145 |
boundingBox: '" . variable_get('cdm_dataportal_geoservice_bounding_box', FALSE) . "',
|
|
146 |
distributionOpacity: '" . variable_get('cdm_dataportal_geoservice_distributionOpacity', '0.5') . "',
|
|
147 |
legendOpacity: '" . variable_get('cdm_dataportal_geoservice_legendOpacity', '0.5') . "',
|
|
148 |
showLayerSwitcher: " . (variable_get('cdm_dataportal_geoservice_showLayerSwitcher', TRUE) ? 'true' : 'false') . ",
|
|
152 |
boundingBox: '" . $map_settings['bbox'] . "',
|
|
153 |
distributionOpacity: '" . $map_settings['distribution_opacity'] . "',
|
|
154 |
legendOpacity: '" . $map_settings['legend']['opacity'] . "',
|
|
155 |
showLayerSwitcher: " . ($map_settings['openlayers']['show_layer_switcher'] ? 'true' : 'false') . ",
|
|
149 | 156 |
baseLayerNames: [" . $layerNames . "], |
150 | 157 |
defaultBaseLayerName: '" . $preferredLayer . "' |
151 | 158 |
} |
... | ... | |
186 | 193 |
* @return String |
187 | 194 |
* rendered html |
188 | 195 |
*/ |
189 |
function get_openlayers_map($width, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE, array $event_listeners = array()) { |
|
196 |
function get_openlayers_map($width, $height, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE, array $event_listeners = array()) {
|
|
190 | 197 |
|
191 | 198 |
_add_js_openlayers_map($event_listeners); |
192 | 199 |
|
200 |
$map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT); |
|
201 |
|
|
193 | 202 |
$out = '<div id="openlayers">'; |
194 | 203 |
$out .= '<div id="openlayers_map" class="smallmap"'; |
195 | 204 |
if($width) { |
196 |
$out .= ' style="width: ' . $width . 'px; height:' . ($width / 2) . 'px"'; |
|
205 |
if(!$height){ |
|
206 |
$height = $width / 2; |
|
207 |
} |
|
208 |
$out .= ' style="width: ' . $width . 'px; height:' . $height . 'px"'; |
|
197 | 209 |
} |
198 | 210 |
|
199 | 211 |
// Additional query parameters as set in the data portal admin section. |
200 |
$labels_on = variable_get('cdm_dataportal_geoservice_labels_on', 0);
|
|
212 |
$labels_on = $map_settings['show_labels'];
|
|
201 | 213 |
|
202 | 214 |
$openlayers_map_query_string = '&img=false&ms=' . $width |
203 | 215 |
. ($bounding_box ? '&bbox=' . $bounding_box : '') |
... | ... | |
248 | 260 |
* @return String |
249 | 261 |
* rendered html |
250 | 262 |
*/ |
251 |
function get_image_map($width, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE) { |
|
263 |
function get_image_map($width, $height= NULL, $bounding_box = FALSE, $occurrenceQuery = FALSE, $distributionQuery = FALSE, $legendFormatQuery = FALSE, $map_caption = FALSE) {
|
|
252 | 264 |
|
253 |
// Additional query parameters as set in the data portal admin section. |
|
254 |
$labels_on = variable_get('cdm_dataportal_geoservice_labels_on', 0); |
|
265 |
$map_settings = get_array_variable_merged(CDM_MAP_DISTRIBUTION, CDM_MAP_DISTRIBUTION_DEFAULT); |
|
255 | 266 |
|
256 |
$query_string = '&image=true&recalculate=false&legend=1&ms=' . $width |
|
267 |
$query_string = '&image=true&recalculate=false&legend=1&ms=' . $width . ($height ? ',' . $height : '') |
|
268 |
// Additional query parameters as set in the data portal admin section. |
|
257 | 269 |
. ($bounding_box ? '&bbox=' . $bounding_box : '') |
258 |
. ($labels_on ? '&label=' . $labels_on : '');
|
|
270 |
. ($map_settings['show_labels'] ? '&label=' . $map_settings['show_labels'] : '');
|
|
259 | 271 |
|
260 | 272 |
if ($map_caption) { |
261 | 273 |
$query_string .= '&mlp=3&mc_s=Georgia,15,blue&mc=' . $map_caption; |
... | ... | |
300 | 312 |
$additional_area_styles = array(); |
301 | 313 |
|
302 | 314 |
// Background color: |
303 |
if (variable_get('map_bg_color', '')) {
|
|
315 |
if ($map_settings['image_map']['bg_color'] ) {
|
|
304 | 316 |
$bgcolor_layer = "background_gis:" . $bgcolor_areaStyleId; |
305 |
$additional_area_styles[] = $bgcolor_areaStyleId . ":" . variable_get('map_bg_color', '') . ",,";
|
|
317 |
$additional_area_styles[] = $bgcolor_areaStyleId . ":" . $map_settings['image_map']['bg_color'] . ",,";
|
|
306 | 318 |
} |
307 | 319 |
|
308 | 320 |
// TODO HACK to replace the default base layer which currently is tdwg4 !!! |
... | ... | |
319 | 331 |
else { |
320 | 332 |
$areystyle_param_token = "&as="; |
321 | 333 |
} |
322 |
if (variable_get('map_base_layer', '')) {
|
|
323 |
$query_string = str_replace($layer_param_token . "tdwg4", "$layer_param_token" . variable_get('map_base_layer', '') . ":" . $baselayer_areaStyleId, $query_string);
|
|
334 |
if ($map_settings['image_map']['base_layer']) {
|
|
335 |
$query_string = str_replace($layer_param_token . "tdwg4", "$layer_param_token" . $map_settings['image_map']['base_layer'] . ":" . $baselayer_areaStyleId, $query_string);
|
|
324 | 336 |
} |
325 | 337 |
else { |
326 | 338 |
$query_string = str_replace($layer_param_token . "tdwg4", $layer_param_token . "tdwg4:" . $baselayer_areaStyleId . ",", $query_string); |
... | ... | |
330 | 342 |
$query_string = str_replace($layer_param_token, $layer_param_token . $bgcolor_layer . ",", $query_string); |
331 | 343 |
} |
332 | 344 |
|
333 |
if (variable_get('map_base_layer_style', '')) {
|
|
334 |
$additional_area_styles[] = $baselayer_areaStyleId . ":" . variable_get('map_base_layer_style', '');
|
|
345 |
if ($map_settings['image_map']['layer_style']) {
|
|
346 |
$additional_area_styles[] = $baselayer_areaStyleId . ":" . $map_settings['image_map']['layer_style'];
|
|
335 | 347 |
} |
336 | 348 |
|
337 | 349 |
foreach ($additional_area_styles as $as) { |
Also available in: Unified diff
refactoring map settings and rendering