feature request #7217
closedSpecimenTypedesignationsWorkingsetEditor: Longitute Latitude fields allow values in degrees minutes seconds formats
100%
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
Updated by Andreas Kohlbecker about 6 years ago
- Tracker changed from bug to feature request
Updated by Andreas Müller about 6 years ago
- Target version changed from Release 4.13 to Release 4.14
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
Updated by Andreas Müller about 6 years ago
- Target version changed from Release 4.14 to Release 5.0
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
Updated by Andreas Kohlbecker almost 6 years ago
- Target version changed from Release 5.0 to Release 5.1
Updated by Andreas Kohlbecker over 5 years ago
- Target version changed from Release 5.1 to Release 5.2
Updated by Andreas Kohlbecker over 5 years ago
- Priority changed from New to Priority14
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.
Updated by Andreas Kohlbecker over 5 years ago
- Target version changed from Release 5.2 to Release 5.3
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?
Updated by Andreas Kohlbecker over 5 years ago
- Target version changed from Release 5.3 to Release 5.4
Updated by Andreas Kohlbecker over 5 years ago
- Target version changed from Release 5.4 to Release 5.5
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.
Updated by Andreas Kohlbecker over 5 years ago
Parsing now works perfectly, the GeoLocationField needs some changes thought ...
Updated by Andreas Kohlbecker over 5 years ago
- Assignee changed from Andreas Kohlbecker to Wolf-Henning Kusber
please review
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
Updated by Wolf-Henning Kusber over 5 years ago
Fehler im Testsystem reproduzierbar.
Updated by Andreas Kohlbecker over 5 years ago
Problem solved please test again
Updated by Wolf-Henning Kusber over 5 years ago
- Assignee changed from Wolf-Henning Kusber to Andreas Kohlbecker
Fehler reproduzierbar, gleiche Fehlermeldung.
Updated by Andreas Kohlbecker over 5 years ago
Test server was not yet build, please try again.
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
- Eintrag von unten
Nach wie vor Vaadin-Fehler bei unnormalen Einträgen. 2018-11-22 17:40
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.