|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This interface describes the functionality of any mapping provider. Fundamentally, the user can request maps with single points, lists of points, routes or single maneuvers marked. The area of interest can be determined in two ways: It can be specified as minimum and maximum of latitude and longitude. Alternatively, it is automatically inferred as the minimum bounding box of all marked points. In either case, the actual map image can not possibly cover exactly the bounding box. The reason is that the bounding box is rectangular in the used geographic coordinate system (using latitude and longitude). Most map visualizations are, however, rectangular in a projected coordinate system. If a rectangular bounding box is transformed from a geographic coordinate system to a projected one, it becomes non-rectangular. It then has to be approximated by a rectangle to result in a rectangular map image. Such an approximation can only be done well, if the projected coordinate system and the scaling method of the mapping provider are known exactly. This does typically not apply, because the mapping provider is external. Subsequently, the map image will probably include some buffer margin around the requested bounding box. Finally, a single map image can be requested or a matrix of segments of this map. Because of the previously mentioned buffer margin the segments will show some overlap. The overlap can not be quantified exactly because of imperfect knowledge regarding the projected coordinate system used by the external mapping provider. A segmented map image can be useful for distributing a map over several screens on devices with small displays. The user of a cell phone can then switch between the segments.
Method Summary |
Type | Method |
---|---|
java.lang.String |
getMapURL(Maneuver man,
boolean allowTurning)
This function returns a URL String to a map image file visualizing a maneuver. |
java.lang.String |
getMapURL(Point[] locations,
ImageFormats fileType,
double minLon,
double maxLon,
double minLat,
double maxLat,
int width,
int height,
boolean allowTurning)
This function returns a URL String to a map image file visualizing a list of Point objects. |
java.lang.String |
getMapURL(Point[] locations,
ImageFormats fileType,
int width,
int height,
boolean allowTurning)
This function returns a URL String to a map image file visualizing a list of Point objects. |
java.lang.String |
getMapURL(Point location,
ImageFormats fileType,
double minLon,
double maxLon,
double minLat,
double maxLat,
int width,
int height,
boolean allowTurning)
This function returns a URL String to a map image file visualizing a Point object. |
java.lang.String |
getMapURL(Point location,
ImageFormats fileType,
int width,
int height,
boolean allowTurning)
This function returns a URL String to a map image file visualizing a Point object. |
java.lang.String |
getMapURL(RoutingResult route,
boolean allowTurning)
This function returns a URL String to a map image file visualizing a route. |
java.lang.String[][] |
getMapURLs(Maneuver man,
int subdivisionLevel,
boolean allowTurning)
This function returns a matrix of URL Strings to segments of a map image visualizing a maneuver. |
java.lang.String[][] |
getMapURLs(Point[] locations,
ImageFormats fileType,
double minLon,
double maxLon,
double minLat,
double maxLat,
int width,
int height,
int subdivisionLevel,
boolean allowTurning)
This function returns a matrix of URL Strings to segments of a map image visualizing a list of Point objects. |
java.lang.String[][] |
getMapURLs(Point[] locations,
ImageFormats fileType,
int width,
int height,
int subdivisionLevel,
boolean allowTurning)
This function returns a matrix of URL Strings to segments of a map image visualizing a list of Point objects. |
java.lang.String[][] |
getMapURLs(Point location,
ImageFormats fileType,
double minLon,
double maxLon,
double minLat,
double maxLat,
int width,
int height,
int subdivisionLevel,
boolean allowTurning)
This function returns a matrix of URL Strings to segments of a map image visualizing a Point object. |
java.lang.String[][] |
getMapURLs(Point location,
ImageFormats fileType,
int width,
int height,
int subdivisionLevel,
boolean allowTurning)
This function returns a matrix of URL Strings to segments of a map image visualizing a Point object. |
java.lang.String[][] |
getMapURLs(RoutingResult route,
int subdivisionLevel,
boolean allowTurning)
This function returns a matrix of URL Strings to segments of a map image visualizing a route. |
java.lang.String |
xmlMap(org.w3c.dom.Document xmlRequest)
This function performs mapping based on an XML request (eLocation XML). |
Method Detail |
public java.lang.String getMapURL(Point[] locations, ImageFormats fileType, int width, int height, boolean allowTurning)
locations
- an array of Point objects that should be marked on
the map, including respective labelsfileType
- an ImageFormats object representing the image format
required (such as GIF)width
- an int representing the map width in pixelsheight
- an int representing the map height in pixelsallowTurning
- a boolean representing whether it is allowed
to turn
the map by 90 degrees against the clock, if the map
can then better match the aspect ratio of the area of
interest. California can be displayed better on a
tall map than a wide one. If the device display is
wide and we allow for turning it, then turning the
image results in a better map.public java.lang.String getMapURL(Point location, ImageFormats fileType, int width, int height, boolean allowTurning)
location
- a Point object that should be marked on the map,
including labelfileType
- an ImageFormats object representing the image format
required (such as GIF)width
- an int representing the map width in pixelsheight
- an int representing the map height in pixelsallowTurning
- a boolean representing whether it is allowed
to turn
the map by 90 degrees against the clock, if the map
can then better match the aspect ratio of the area of
interest. California can be displayed better on a
tall map than a wide one. If the device display is
wide and we allow for turning it, then turning the
image results in a better map.public java.lang.String getMapURL(RoutingResult route, boolean allowTurning)
route
- a RoutingResult object to display on the mapallowTurning
- a boolean representing whether it is allowed to turn
the map by 90 degrees against the clock, if the map
can then better match the aspect ratio of the area of
interest. California can be displayed better on a tall
map than a wide one. If the device display is wide
and we allow for turning it, then turning the image
results in a better map.public java.lang.String getMapURL(Maneuver man, boolean allowTurning)
man
- a Maneuver object to display on the mapallowTurning
- a boolean representing whether it is allowed to turn
the map by 90 degrees against the clock, if the map
can then better match the aspect ratio of the area of
interest. California can be displayed better on a tall
map than a wide one. If the device display is wide
and we allow for turning it, then turning the image
results in a better map.public java.lang.String getMapURL(Point[] locations, ImageFormats fileType, double minLon, double maxLon, double minLat, double maxLat, int width, int height, boolean allowTurning)
locations
- an array of Point objects that should be marked on the
map, including respective labelsfileType
- an ImageFormats object representing the image format
required (such as GIF)minLon
- a double representing the minimum longitude to define
the upper and lower left corners of the area of
interestmaxLon
- a double representing the maximum longitude to define
the upper and lower right corners of the area of
interestminLat
- a double representing the minimum latitude to define
the lower left and right corners of the area of
interestmaxLat
- a double representing the maximum latitude to define
the upper left and right corners of the area of
interestwidth
- an int representing the map width in pixelsheight
- an int representing the map height in pixelsallowTurning
- a boolean representing whether it is allowed to turn
the map by 90 degrees against the clock, if the map
can then better match the aspect ratio of the area of
interest. California can be displayed better on a tall
map than a wide one. If the device display is wide
and we allow for turning it, then turning the image
results in a better map.public java.lang.String getMapURL(Point location, ImageFormats fileType, double minLon, double maxLon, double minLat, double maxLat, int width, int height, boolean allowTurning)
location
- a Point object that should be marked on the map,
including labelfileType
- an ImageFormats object representing the image format
required (such as GIF)minLon
- a double representing the minimum longitude to define
the upper and lower left corners of the area of
interestmaxLon
- a double representing the maximum longitude to define
the upper and lower right corners of the area of
interestminLat
- a double representing the minimum latitude to define
the lower left and right corners of the area of
interestmaxLat
- a double representing the maximum latitude to define
the upper left and right corners of the area of
interestwidth
- an int representing the map width in pixelsheight
- an int representing the map height in pixelsallowTurning
- a boolean representing whether it is allowed to turn
the map by 90 degrees against the clock, if the map
can then better match the aspect ratio of the area of
interest. California can be displayed better on a tall
map than a wide one. If the device display is wide
and we allow for turning it, then turning the image
results in a better map.public java.lang.String[][] getMapURLs(Point[] locations, ImageFormats fileType, int width, int height, int subdivisionLevel, boolean allowTurning)
locations
- an array of Point objects that should be marked
on the map, including respective labelsfileType
- an ImageFormats object representing the image
format required (such as GIF)width
- an int representing the map width in pixelsheight
- an int representing the map height in pixelssubdivisionLevel
- An int to represent the level
of subdivisioning
of the complete map in segments. Levels 0, 1, 2,
3, 4, 5 result in 1x1, 2x2, 4x4, 8x8, 16x16,
32x32 segments. Using this regular subdivisioning
scheme, there is a problem if the aspect ratios
of the area of interest and the map image differ
considerably. If a horizontally long and thin
area of interest is mapped on a square map image,
an increased vertical buffer will result. All
these vertical buffers of neighboring segments
will overlap. To reduce the vertical overlap of
segment map images, the implementation of this
interface may choose to use less segments
vertically. For example 4x2 segments might have
less overlap than 4x4 segments of the same area.allowTurning
- a boolean representing whether it is allowed to
turn the map by 90 degrees against the clock, if
the map can then better match the aspect ratio of
the area of interest. California can be displayed
better on a tall map than a wide one. If the
device display is wide and we allow for turning
it, then turning the image results in a better
map.public java.lang.String[][] getMapURLs(Point[] locations, ImageFormats fileType, double minLon, double maxLon, double minLat, double maxLat, int width, int height, int subdivisionLevel, boolean allowTurning)
locations
- an array of Point objects that should be marked
on the map, including respective labelsfileType
- an ImageFormats object representing the image
format required (such as GIF)minLon
- a double representing the minimum longitude to
define the upper and lower left corners of the
area of interestmaxLon
- a double representing the maximum longitude to
define the upper and lower right corners of the
area of interestminLat
- a double representing the minimum latitude to
define the lower left and right corners of the
area of interestmaxLat
- a double representing the maximum latitude to
define the upper left and right corners of the
area of interestwidth
- an int representing the map width in pixelsheight
- an int representing the map height in pixelssubdivisionLevel
- An int to represent the level of subdivisioning
of the complete map in segments. Levels 0, 1, 2,
3, 4, 5 result in 1x1, 2x2, 4x4, 8x8, 16x16,
32x32 segments. Using this regular subdivisioning
scheme, there is a problem if the aspect ratios
of the area of interest and the map image differ
considerably. If a horizontally long and thin
area of interest is mapped on a square map image,
an increased vertical buffer will result. All
these vertical buffers of neighboring segments
will overlap. To reduce the vertical overlap of
segment map images, the implementation of this
interface may choose to use less segments
vertically. For example 4x2 segments might have
less overlap than 4x4 segments of the same area.allowTurning
- a boolean representing whether it is allowed to
turn the map by 90 degrees against the clock, if
the map can then better match the aspect ratio of
the area of interest. California can be displayed
better on a tall map than a wide one. If the
device display is wide and we allow for turning
it, then turning the image results in a better
map.public java.lang.String[][] getMapURLs(Point location, ImageFormats fileType, int width, int height, int subdivisionLevel, boolean allowTurning)
location
- a Point object that should be marked on the map,
including labelfileType
- an ImageFormats object representing the image
format required (such as GIF)width
- an int representing the map width in pixelsheight
- an int representing the map height in pixelssubdivisionLevel
- An int to represent the level
of subdivisioning
of the complete map in segments. Levels 0, 1, 2,
3, 4, 5 result in 1x1, 2x2, 4x4, 8x8, 16x16,
32x32 segments. Using this regular subdivisioning
scheme, there is a problem if the aspect ratios
of the area of interest and the map image differ
considerably. If a horizontally long and thin
area of interest is mapped on a square map image,
an increased vertical buffer will result. All
these vertical buffers of neighboring segments
will overlap. To reduce the vertical overlap of
segment map images, the implementation of this
interface may choose to use less segments
vertically. For example 4x2 segments might have
less overlap than 4x4 segments of the same area.allowTurning
- a boolean representing whether it is allowed to
turn the map by 90 degrees against the clock, if
the map can then better match the aspect ratio of
the area of interest. California can be displayed
better on a tall map than a wide one. If the
device display is wide and we allow for turning
it, then turning the image results in a better
map.public java.lang.String[][] getMapURLs(Point location, ImageFormats fileType, double minLon, double maxLon, double minLat, double maxLat, int width, int height, int subdivisionLevel, boolean allowTurning)
location
- a Point object that should be marked on the map,
including labelfileType
- an ImageFormats object representing the image
format required (such as GIF)minLon
- a double representing the minimum longitude to
define the upper and lower left corners of the
area of interestmaxLon
- a double representing the maximum longitude to
define the upper and lower right corners of the
area of interestminLat
- a double representing the minimum latitude to
define the lower left and right corners of the
area of interestmaxLat
- a double representing the maximum latitude to
define the upper left and right corners of the
area of interestwidth
- an int representing the map width in pixelsheight
- an int representing the map height in pixelssubdivisionLevel
- An int to represent the level of subdivisioning
of the complete map in segments. Levels 0, 1, 2,
3, 4, 5 result in 1x1, 2x2, 4x4, 8x8, 16x16,
32x32 segments. Using this regular subdivisioning
scheme, there is a problem if the aspect ratios
of the area of interest and the map image differ
considerably. If a horizontally long and thin
area of interest is mapped on a square map image,
an increased vertical buffer will result. All
these vertical buffers of neighboring segments
will overlap. To reduce the vertical overlap of
segment map images, the implementation of this
interface may choose to use less segments
vertically. For example 4x2 segments might have
less overlap than 4x4 segments of the same area.allowTurning
- a boolean representing whether it is allowed to
turn the map by 90 degrees against the clock, if
the map can then better match the aspect ratio of
the area of interest. California can be displayed
better on a tall map than a wide one. If the
device display is wide and we allow for turning
it, then turning the image results in a better
map.public java.lang.String[][] getMapURLs(RoutingResult route, int subdivisionLevel, boolean allowTurning)
route
- a RoutingResult object to display on the mapsubdivisionLevel
- An int to represent the level of subdivisioning
of the complete map in segments. Levels 0, 1, 2,
3, 4, 5 result in 1x1, 2x2, 4x4, 8x8, 16x16,
32x32 segments. Using this regular subdivisioning
scheme, there is a problem if the aspect ratios
of the area of interest and the map image differ
considerably. If a horizontally long and thin
area of interest is mapped on a square map image,
an increased vertical buffer will result. All
these vertical buffers of neighboring segments
will overlap. To reduce the vertical overlap of
segment map images, the implementation of this
interface may choose to use less segments
vertically. For example 4x2 segments might have
less overlap than 4x4 segments of the same area.allowTurning
- a boolean representing whether it is allowed to
turn the map by 90 degrees against the clock, if
the map can then better match the aspect ratio of
the area of interest. California can be displayed
better on a tall map than a wide one. If the
device display is wide and we allow for turning
it, then turning the image results in a better
map.public java.lang.String[][] getMapURLs(Maneuver man, int subdivisionLevel, boolean allowTurning)
man
- a Maneuver object to display on the mapsubdivisionLevel
- An int to represent the level of subdivisioning
of the complete map in segments. Levels 0, 1, 2,
3, 4, 5 result in 1x1, 2x2, 4x4, 8x8, 16x16,
32x32 segments. Using this regular subdivisioning
scheme, there is a problem if the aspect ratios
of the area of interest and the map image differ
considerably. If a horizontally long and thin
area of interest is mapped on a square map image,
an increased vertical buffer will result. All
these vertical buffers of neighboring segments
will overlap. To reduce the vertical overlap of
segment map images, the implementation of this
interface may choose to use less segments
vertically. For example 4x2 segments might have
less overlap than 4x4 segments of the same area.allowTurning
- a boolean representing whether it is allowed to
turn the map by 90 degrees against the clock, if
the map can then better match the aspect ratio of
the area of interest. California can be displayed
better on a tall map than a wide one. If the
device display is wide and we allow for turning
it, then turning the image results in a better
map.public java.lang.String xmlMap(org.w3c.dom.Document xmlRequest)
xmlRequest
- a Document object representing the XMl document of the
mapping request.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |