Skip to content

Commit 8f59e0e

Browse files
author
Thibault Mutabazi
committed
Merge branch 'feature/126_geocode_district' into 'develop'
Supported geocoder district (#126) See merge request gtt/redmine_gtt!36
2 parents bc1a436 + e140888 commit 8f59e0e

File tree

6 files changed

+59
-9
lines changed

6 files changed

+59
-9
lines changed

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,24 @@
5151
</p>
5252
</div>
5353

54+
<div class="box tabular settings">
55+
<h3><%= l(:select_default_geocoder_settings) %></h3>
56+
57+
<p>
58+
<%= content_tag(:label, l(:gtt_settings_geocoder_address_field_name)) %>
59+
<%= text_field_tag('settings[default_geocoder_address_field_name]',
60+
@settings['default_geocoder_address_field_name'],
61+
:size => 10) %>
62+
</p>
63+
64+
<p>
65+
<%= content_tag(:label, l(:gtt_settings_geocoder_district_field_name)) %>
66+
<%= text_field_tag('settings[default_geocoder_district_field_name]',
67+
@settings['default_geocoder_district_field_name'],
68+
:size => 10) %>
69+
</p>
70+
</div>
71+
5472
<%= javascript_tag do %>
5573
var glyph = ol.style.FontSymbol.prototype.defs.glyphs;
5674
for (var font in ol.style.FontSymbol.prototype.defs.fonts){

assets/javascripts/app.js

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ var App = (function ($, publ) {
3838
lon: 139.691706,
3939
lat: 35.689524,
4040
zoom: 13,
41-
maxzoom: 19
41+
maxzoom: 19,
42+
geocoderAddress: "現地住所",
43+
geocoderDistrict: "区名"
4244
};
4345

4446
/**
@@ -72,6 +74,12 @@ var App = (function ($, publ) {
7274
if (defaults.maxzoom == null) {
7375
defaults.maxzoom = quick_hack.maxzoom;
7476
}
77+
if (defaults.geocoderAddress == null) {
78+
defaults.geocoderAddress = quick_hack.geocoderAddress;
79+
}
80+
if (defaults.geocoderDistrict == null) {
81+
defaults.geocoderDistrict = quick_hack.geocoderDistrict;
82+
}
7583

7684
if (contents.geom && contents.geom !== null) {
7785
features = new ol.format.GeoJSON().readFeatures(
@@ -592,7 +600,7 @@ var App = (function ($, publ) {
592600
// Hack to add Geocoding buttons to text fields
593601
// There should be a better way to do this
594602
if ( $("#issue-form #attributes button.btn-geocode").length == 0 ) {
595-
$("#issue-form #attributes label:contains('現地住所')").parent("p").append(
603+
$("#issue-form #attributes label:contains('" + defaults.geocoderAddress + "')").parent("p").append(
596604
'<button name="button" type="button" class="btn-geocode">住所検索</button>'
597605
);
598606

@@ -605,11 +613,25 @@ var App = (function ($, publ) {
605613
});
606614
coords = ol.proj.transform(coords,'EPSG:3857','EPSG:4326')
607615
$.getJSON("https://***REMOVED***/reversegeocode/json/" + coords.join(",") + ",1000", function(data) {
616+
var addressInput = $("#issue-form #attributes label:contains('" + defaults.geocoderAddress + "')").parent("p").children("input");
617+
var districtInput = $("#issue-form #attributes label:contains('" + defaults.geocoderDistrict + "')").parent("p").children("input");
618+
var foundDistrict = false;
608619
if (data.result.address) {
609-
$("#issue-form #attributes label:contains('現地住所')").parent("p").children("input").val(data.result.address);
620+
addressInput.val(data.result.address);
621+
if (districtInput && data.result.shikuchoson) {
622+
var regexp = /^(?:\S+)?(\S+)$/g;
623+
var match = regexp.exec(data.result.shikuchoson);
624+
if (match && match.length === 2) {
625+
districtInput.val(match[1]);
626+
foundDistrict = true;
627+
}
628+
}
610629
}
611630
else {
612-
$("#issue-form #attributes label:contains('現地住所')").parent("p").children("input").val("---");
631+
addressInput.val("---");
632+
}
633+
if (!foundDistrict) {
634+
districtInput.val("");
613635
}
614636
});
615637
}

config/locales/en.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,12 @@ en:
5050

5151
gtt_settings_geocoder_url: "API Service URL"
5252
gtt_settings_geocoder_apikey: "API Key"
53+
gtt_settings_geocoder_address_field_name: "Address field name"
54+
gtt_settings_geocoder_district_field_name: "District field name"
5355

5456
select_default_tracker_icon: "Select default tracker icon:"
5557
select_default_status_color: "Select default status color:"
5658
select_default_map_settings: "Select default map settings:"
59+
select_default_geocoder_settings: "Select default geocoder settings:"
5760

5861
text_osm_url_sample: For example https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png

config/locales/ja.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,18 @@ ja:
4444
gtt_settings_general_zoom_level: "既定の地図ズームレベル"
4545
gtt_settings_general_maxzoom_level: "既定の最大地図ズームレベル"
4646

47-
gtt_settings_map_url: "APIサービスのURL"
48-
gtt_settings_map_apikey: "APIキー"
47+
gtt_settings_map_url: "地図APIサービスのURL"
48+
gtt_settings_map_apikey: "地図APIキー"
4949
gtt_settings_map_maxzoom_level: "最大地図ズームレベル"
5050

51-
gtt_settings_geocoder_url: "APIサービスのURL"
52-
gtt_settings_geocoder_apikey: "APIキー"
51+
gtt_settings_geocoder_url: "ジオコーダAPIサービスのURL"
52+
gtt_settings_geocoder_apikey: "ジオコーダAPIキー"
53+
gtt_settings_geocoder_address_field_name: "住所フィールド名"
54+
gtt_settings_geocoder_district_field_name: "区フィールド名"
5355

5456
select_default_tracker_icon: "レポートの分野アイコンを選択:"
5557
select_default_status_color: "ステータス色を選択:"
5658
select_default_map_settings: "地図の初期値を選択:"
59+
select_default_geocoder_settings: "ジオコーダの初期値を選択:"
5760

5861
text_osm_url_sample: "例: https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png"

init.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
'default_map_center_longitude' => 139.691706,
2121
'default_map_center_latitude' => 35.689524,
2222
'default_map_zoom_level' => 13,
23-
'default_map_maxzoom_level' => 19
23+
'default_map_maxzoom_level' => 19,
24+
'default_geocoder_address_field_name' => '現地住所',
25+
'default_geocoder_district_field_name' => '区名'
2426
},
2527
partial: 'settings/gtt/settings'
2628
)

lib/redmine_gtt/hooks/view_layouts_base_html_head_hook.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ def view_layouts_base_body_bottom(context={})
4747
:maxzoom => Setting.plugin_redmine_gtt['default_map_maxzoom_level'],
4848
:geocoder_url => Setting.plugin_redmine_gtt['default_geocoder_url'],
4949
:geocoder_apikey => Setting.plugin_redmine_gtt['default_geocoder_apikey'],
50+
:geocoder_address => Setting.plugin_redmine_gtt['default_geocoder_address_field_name'],
51+
:geocoder_district => Setting.plugin_redmine_gtt['default_geocoder_district_field_name'],
5052
:plugin_settings => Setting.plugin_redmine_gtt.select{ |key, value| key.to_s.match(/^(?!default).+/) }
5153
}, :id => 'ol-defaults', :style => 'display:none')
5254
return tags.join("\n")

0 commit comments

Comments
 (0)