Project

General

Profile

Actions

feature request #7217

closed

SpecimenTypedesignationsWorkingsetEditor: Longitute Latitude fields allow values in degrees minutes seconds formats

Added by Andreas Kohlbecker about 6 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Priority14
Category:
cdmlib
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Severity:
normal
Tags:

Description

there are various degrees minutes seconds formats, it is impossible to support all of them, we thus need to select the most common formats to support.

also support degree in decimal notation:

  • 49°13'39.0''N
  • 20°00'31.5''E

Maybe the http://docs.geotools.org/ provide a suitable parser? Also a possibility, the https://dev.e-taxonomy.eu/gitweb/geo.git/blob/HEAD:/coordinateConverter/CoordinateConverter.cs


Related issues

Related to EDIT - bug #7314: support for dot and comma in Georeferenz, Error radius, Altitude, Distance to ...ClosedAndreas Kohlbecker

Actions
Copied to EDIT - feature request #7264: SpecimenTypedesignationsWorkingsetEditor: Longitute Latitude fields allow values as Gauss-Krüger KoordinatesRejectedAndreas Kohlbecker

Actions
Actions #1

Updated by Andreas Kohlbecker about 6 years ago

  • Tracker changed from bug to feature request
Actions #2

Updated by Andreas Müller about 6 years ago

  • Target version changed from Release 4.13 to Release 4.14
Actions #3

Updated by Andreas Kohlbecker about 6 years ago

  • Copied to feature request #7264: SpecimenTypedesignationsWorkingsetEditor: Longitute Latitude fields allow values as Gauss-Krüger Koordinates added
Actions #4

Updated by Andreas Müller about 6 years ago

  • Target version changed from Release 4.14 to Release 5.0
Actions #5

Updated by Andreas Kohlbecker almost 6 years ago

  • Related to bug #7314: support for dot and comma in Georeferenz, Error radius, Altitude, Distance to ... added
Actions #6

Updated by Andreas Kohlbecker almost 6 years ago

  • Description updated (diff)
Actions #7

Updated by Andreas Kohlbecker almost 6 years ago

  • Target version changed from Release 5.0 to Release 5.1
Actions #8

Updated by Andreas Kohlbecker over 5 years ago

  • Target version changed from Release 5.1 to Release 5.2
Actions #9

Updated by Andreas Kohlbecker over 5 years ago

  • Priority changed from New to Priority14
Actions #10

Updated by Andreas Kohlbecker over 5 years ago

  • Description updated (diff)
Actions #11

Updated by Wolf-Henning Kusber over 5 years ago

Known minor point:
On my computer, decimal values are only accepted if a Komma is used. A full stop is ignored by the system.

Actions #12

Updated by Andreas Kohlbecker over 5 years ago

  • Target version changed from Release 5.2 to Release 5.3
Actions #13

Updated by Andreas Müller over 5 years ago

Andreas Kohlbecker wrote:

...
Maybe the http://docs.geotools.org/ provide a suitable parser? Also a possibility, the https://dev.e-taxonomy.eu/gitweb/geo.git/blob/HEAD:/coordinateConverter/CoordinateConverter.cs

The CoordinateConverter has been integrated into cdmlib and is available at eu.etaxonomy.cdm.strategy.parser.location.CoordinateConverter . Have you tried this?

Actions #14

Updated by Andreas Kohlbecker over 5 years ago

  • Target version changed from Release 5.3 to Release 5.4
Actions #15

Updated by Andreas Kohlbecker over 5 years ago

  • Target version changed from Release 5.4 to Release 5.5
Actions #16

Updated by Andreas Kohlbecker over 5 years ago

  • Description updated (diff)
Actions #17

Updated by Andreas Müller over 5 years ago

  • Category changed from cdm-vaadin to cdmlib
  • Status changed from New to Resolved
  • % Done changed from 0 to 50

I added double apostrophe as marker for seconds. This fixes the tests.

I also replaced the UTF8 constants by links to the UTF8 class, to have them all at 1 place.

Actions #18

Updated by Andreas Kohlbecker over 5 years ago

Parsing now works perfectly, the GeoLocationField needs some changes thought ...

Actions #19

Updated by Andreas Kohlbecker over 5 years ago

  • Assignee changed from Andreas Kohlbecker to Wolf-Henning Kusber

please review

Actions #20

Updated by Wolf-Henning Kusber over 5 years ago

Parser is workin fine, except of "forbidden entries"

50°61'15"N seems to produce not only a warn "Latitude !" in red colour, but also the following error:

com.vaadin.data.util.converter.Converter$ConversionException: java.text.ParseException: Latitude 50?61'15"N could not be parsed
at eu.etaxonomy.cdm.vaadin.util.converter.GeoLocationConverterValidator.convertToModel(GeoLocationConverterValidator.java:59)
at eu.etaxonomy.cdm.vaadin.util.converter.GeoLocationConverterValidator.convertToModel(GeoLocationConverterValidator.java:30)
at eu.etaxonomy.cdm.vaadin.component.common.GeoLocationField.updateMap(GeoLocationField.java:144)
at eu.etaxonomy.cdm.vaadin.component.common.GeoLocationField.lambda$initContent$6ecb4440$2(GeoLocationField.java:118)
at sun.reflect.GeneratedMethodAccessor1645.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1015)
at com.vaadin.ui.AbstractField.fireValueChange(AbstractField.java:1161)
at com.vaadin.ui.AbstractField.setValue(AbstractField.java:571)
at com.vaadin.ui.AbstractField.setValue(AbstractField.java:468)
at com.vaadin.ui.AbstractTextField.changeVariables(AbstractTextField.java:205)
at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:616)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:463)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:406)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.text.ParseException: Latitude 50?61'15"N could not be parsed
at eu.etaxonomy.cdm.model.location.Point.parseLatitude(Point.java:504)
at eu.etaxonomy.cdm.vaadin.util.converter.GeoLocationConverterValidator.convertToModel(GeoLocationConverterValidator.java:55)
... 80 more

Actions #21

Updated by Wolf-Henning Kusber over 5 years ago

Fehler im Testsystem reproduzierbar.

Actions #22

Updated by Andreas Kohlbecker over 5 years ago

Problem solved please test again

Actions #23

Updated by Wolf-Henning Kusber over 5 years ago

  • Assignee changed from Wolf-Henning Kusber to Andreas Kohlbecker

Fehler reproduzierbar, gleiche Fehlermeldung.

Actions #24

Updated by Andreas Kohlbecker over 5 years ago

Test server was not yet build, please try again.

Actions #25

Updated by Wolf-Henning Kusber over 5 years ago

Nach wie vor internal error bei
http://test.e-taxonomy.eu/cdmserver/phycobank/app/registration#!workingset/a0ddaa05-622f-42c3-aa0f-fda3b2b3fbd5

  1. Eintrag von unten

Nach wie vor Vaadin-Fehler bei unnormalen Einträgen. 2018-11-22 17:40

Actions #26

Updated by Wolf-Henning Kusber over 5 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 50 to 100

Test (Test system) 2018-11-23
Error radius shown
Normal Geo references converted
Forbidden entries result in an error allert and disallow saving
Corrected fields allow saving
No Vaadin errors.
Ticket can be closed.

Actions

Also available in: Atom PDF