Skip to content

Commit a9d4cb7

Browse files
committed
ref #129 supported map fit maxzoom
1 parent 11e4754 commit a9d4cb7

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
}
@@ -441,12 +445,18 @@ var App = (function ($, publ) {
441445
ol.extent.extend(extent, feature.getGeometry().getExtent());
442446
});
443447
maps.forEach(function (m) {
444-
m.getView().fit(extent, m.getSize());
448+
m.getView().fit(extent, {
449+
size: getMapSize(m),
450+
maxZoom: defaults.fitMaxzoom
451+
});
445452
});
446453
}
447454
else if (bounds.getSource().getFeatures().length > 0) {
448455
maps.forEach(function (m) {
449-
m.getView().fit(bounds.getSource().getExtent(), m.getSize());
456+
m.getView().fit(bounds.getSource().getExtent(), {
457+
size: getMapSize(m),
458+
maxZoom: defaults.fitMaxzoom
459+
});
450460
});
451461
}
452462
else if (geolocation) {
@@ -919,6 +929,17 @@ var App = (function ($, publ) {
919929
});
920930
}
921931

932+
function getMapSize(map) {
933+
var size = map.getSize();
934+
if (size.length === 2 && size[0] <= 0 && size[1] <= 0) {
935+
size = [
936+
$("div#" + map.getTarget().id).width(),
937+
$("div#" + map.getTarget().id).height(),
938+
]
939+
}
940+
return size;
941+
}
942+
922943
/**
923944
* Return public objects
924945
*/

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)