Wiki source code of Spatial Extensions
Hide last authors
2.1 | 1 | BETA VERSION | |
2 | @since 3.0 | ||
1.1 | 3 | ||
2.1 | 4 | Spatial Extensions are composed of several concepts: | |
1.1 | 5 | ||
2.1 | 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 | |||
3.1 | 100 | JavaScript Reference: | |
2.1 | 101 | ||
4.1 | 102 | [[Geocoder>>Javascript.GeoSpatial.Geocoder]] |