Skip to content

Commit 72b9c68

Browse files
author
Thibault Mutabazi
committed
Merge branch 'feature/129_fit_maxzoom' into 'develop'
Supported map fit maxzoom See merge request gtt/redmine_gtt!40
2 parents 1c1387f + a9d4cb7 commit 72b9c68

File tree

6 files changed

+34
-2
lines changed

6 files changed

+34
-2
lines changed

app/views/settings/gtt/_settings.html.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@
4949
@settings['default_map_maxzoom_level'],
5050
:size => 10) %>
5151
</p>
52+
53+
<p>
54+
<%= content_tag(:label, l(:gtt_settings_general_fit_maxzoom_level)) %>
55+
<%= text_field_tag('settings[default_map_fit_maxzoom_level]',
56+
@settings['default_map_fit_maxzoom_level'],
57+
:size => 10) %>
58+
</p>
5259
</div>
5360

5461
<div class="box tabular settings">

assets/javascripts/app.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ var App = (function ($, publ) {
3939
lat: 35.689524,
4040
zoom: 13,
4141
maxzoom: 19,
42+
fitMaxzoom: 17,
4243
geocoderAddress: "現地住所",
4344
geocoderDistrict: "区名"
4445
};
@@ -74,6 +75,9 @@ var App = (function ($, publ) {
7475
if (defaults.maxzoom == null) {
7576
defaults.maxzoom = quick_hack.maxzoom;
7677
}
78+
if (defaults.fitMaxzoom == null) {
79+
defaults.fitMaxzoom = quick_hack.fitMaxzoom;
80+
}
7781
if (defaults.geocoderAddress == null) {
7882
defaults.geocoderAddress = quick_hack.geocoderAddress;
7983
}
@@ -451,12 +455,18 @@ var App = (function ($, publ) {
451455
ol.extent.extend(extent, feature.getGeometry().getExtent());
452456
});
453457
maps.forEach(function (m) {
454-
m.getView().fit(extent, m.getSize());
458+
m.getView().fit(extent, {
459+
size: getMapSize(m),
460+
maxZoom: defaults.fitMaxzoom
461+
});
455462
});
456463
}
457464
else if (bounds.getSource().getFeatures().length > 0) {
458465
maps.forEach(function (m) {
459-
m.getView().fit(bounds.getSource().getExtent(), m.getSize());
466+
m.getView().fit(bounds.getSource().getExtent(), {
467+
size: getMapSize(m),
468+
maxZoom: defaults.fitMaxzoom
469+
});
460470
});
461471
}
462472
else if (geolocation) {
@@ -966,6 +976,17 @@ var App = (function ($, publ) {
966976
});
967977
}
968978

979+
function getMapSize(map) {
980+
var size = map.getSize();
981+
if (size.length === 2 && size[0] <= 0 && size[1] <= 0) {
982+
size = [
983+
$("div#" + map.getTarget().id).width(),
984+
$("div#" + map.getTarget().id).height(),
985+
]
986+
}
987+
return size;
988+
}
989+
969990
/**
970991
* Return public objects
971992
*/

config/locales/en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ en:
4343
gtt_settings_general_center_lat: "Default map center latitude"
4444
gtt_settings_general_zoom_level: "Default map zoom level"
4545
gtt_settings_general_maxzoom_level: "Default map maximum zoom level"
46+
gtt_settings_general_fit_maxzoom_level: "Default map fit maximum zoom level"
4647

4748
gtt_settings_map_url: "API Service URL"
4849
gtt_settings_map_apikey: "API Key"

config/locales/ja.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ ja:
4343
gtt_settings_general_center_lat: "既定の地図中心緯度"
4444
gtt_settings_general_zoom_level: "既定の地図ズームレベル"
4545
gtt_settings_general_maxzoom_level: "既定の最大地図ズームレベル"
46+
gtt_settings_general_fit_maxzoom_level: "フィット時最大地図ズームレベル"
4647

4748
gtt_settings_map_url: "地図APIサービスのURL"
4849
gtt_settings_map_apikey: "地図APIキー"

init.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
'default_map_center_latitude' => 35.689524,
2222
'default_map_zoom_level' => 13,
2323
'default_map_maxzoom_level' => 19,
24+
'default_map_fit_maxzoom_level' => 17,
2425
'default_geocoder_address_field_name' => '現地住所',
2526
'default_geocoder_district_field_name' => '区名'
2627
},

lib/redmine_gtt/hooks/view_layouts_base_html_head_hook.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def view_layouts_base_body_bottom(context={})
4545
:lat => Setting.plugin_redmine_gtt['default_map_center_latitude'],
4646
:zoom => Setting.plugin_redmine_gtt['default_map_zoom_level'],
4747
:maxzoom => Setting.plugin_redmine_gtt['default_map_maxzoom_level'],
48+
:fit_maxzoom => Setting.plugin_redmine_gtt['default_map_fit_maxzoom_level'],
4849
:geocoder_url => Setting.plugin_redmine_gtt['default_geocoder_url'],
4950
:geocoder_apikey => Setting.plugin_redmine_gtt['default_geocoder_apikey'],
5051
:geocoder_address => Setting.plugin_redmine_gtt['default_geocoder_address_field_name'],

0 commit comments

Comments
 (0)