Wiki source code of Spatial Extensions
Show last authors
1 | BETA VERSION |
2 | @since 3.0 |
3 | |
4 | Spatial Extensions are composed of several concepts: |
5 | |
6 | * a spatially enabled database, such as Oracle Spatial, MySQL, Postgis or Microsoft SQL Server 2008. |
7 | * a specific property type to store / read geometries, such as POINT, LINE, ... |
8 | * hibernate extensions to query data based on spatial attributes |
9 | * built in services to integrate with 3rd party providers such as Google Maps or ViaMichelin for maps or geocoding |
10 | * widgetry to show maps and position objects on maps |
11 | |
12 | = Spatial Database = |
13 | |
14 | A spatial enabled database has the following capabilities: |
15 | |
16 | - Store a Geometry (POINT, ...) as a column in a table using a mapping coordinate system. |
17 | - Query on that column using spatial functions |
18 | - Optionally, index those spatial data for fast retrieval. |
19 | |
20 | Spatially enabled database are: |
21 | |
22 | * Oracle 11g Standard and Enterprise Edition |
23 | * MySQL 5.1 and above (indexing not supported as of 5.5) |
24 | * Postgres with the GIS Extension (PostGis) |
25 | * Microsoft SQL Server 2008 |
26 | |
27 | Other databases or version do not have spatial support. |
28 | |
29 | |
30 | = Enabling the spatial components in Requea = |
31 | |
32 | By default, the spatial components are not enabled. You must specify that you want spatial functionalities in the requeadb.xml: |
33 | |
34 | {{code language="xml"}} |
35 | <?xml version="1.0" encoding="UTF-8"?> |
36 | <config> |
37 | <DbType>oracle11g</DbType> |
38 | **~ <DbSpatial>true</DbSpatial>** |
39 | <DbDriver>oracle.jdbc.OracleDriver</DbDriver> |
40 | <DbURL>jdbc:oracle:thin:@rhel6ws.requea.com:1522:ORCL</DbURL> |
41 | <DbUser>requea</DbUser> |
42 | <DbPassword>xxxx</DbPassword> |
43 | </config> |
44 | {{/code}} |
45 | |
46 | |
47 | |
48 | = Storing spatial information = |
49 | |
50 | Spatial information (Geometries) are stored as special columns in the Dataabase. |
51 | In Requea, you should use the type "Geometry" in the Entity Property definition: |
52 | |
53 | [[image:ScreenShot2011-10-13at3.50.13PM.png]] |
54 | |
55 | |
56 | = Querying on spatial using HQL = |
57 | |
58 | |
59 | |
60 | |
61 | = Geo Services = |
62 | |
63 | There are 3 built in services that are available for spatial operations, in addition to storing and querying information: |
64 | |
65 | * Geocoding provides a WSG84 coordinate (Latitude, Longitude) based on the postal address. |
66 | * Mapping provides Maps to show the position of a point, line, ... on the map. |
67 | * Linking provides a URL to invoke the web site of a mapping provider to show one point on a map |
68 | |
69 | == GeoSpatial Providers == |
70 | |
71 | - GoogleMaps: |
72 | |
73 | * GeoCoding: Yes, subject to licence agreements. Should not be used on an Intranet or Extranet |
74 | * Mapping: Yes, subject to licence agreements. Should not be used on an Intranet or Extranet |
75 | * Linking: Yes |
76 | |
77 | - GoogleMaps Premier: |
78 | |
79 | * GeoCoding: Yes |
80 | * Mapping: Yes |
81 | * Linking: Yes |
82 | |
83 | - ViaMichelin: |
84 | |
85 | * GeoCoding: Yes |
86 | * Mapping: Yes |
87 | * Linking: Yes |
88 | |
89 | - CloudMade: |
90 | |
91 | * GeoCoding: No / Poor |
92 | * Mapping: Yes |
93 | * Linking: Yes |
94 | |
95 | NOTE that Services are subject to Usage condition. Please refer to their website. |
96 | |
97 | |
98 | == Using Geocoding == |
99 | |
100 | JavaScript Reference: |
101 | |
102 | [[Geocoder >> Javascript.GeoSpatial.Geocoder]] |