#23137: Error when use OSMapWidget.js
------------------------+--------------------------------------
Reporter: koyoyo | Owner: nobody
Type: Bug | Status: new
Component: GIS | Version: 1.6
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
------------------------+--------------------------------------
Changes (by timo):
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Old description:
> I try to create my form with GeoDjango and I didn't found an good example
> in document.
>
> So, I use django/contrib/gis/static/gis/js/OSMapWidget.js and found that
> have some of bugs.
>
> First, in line 173 (miss .) eg. if geom_name = 'MultiPoint', then
> options['geom_type'] will be '''OpenLayers.GeometryMultiPoint'''
>
> {{{
> else options['geom_type'] = eval('OpenLayers.Geometry' +
> options['geom_name']);
> }}}
>
> changed to
>
> {{{
> else options['geom_type'] = eval('OpenLayers.Geometry.' +
> options['geom_name']);
> }}}
>
> Second, line 181 (check is_collection) It is wrong use of function
> "isinstanceof". It cannot check constructor isinstanceof constructor.
>
> {{{
> is_collection: options['geom_name'] instanceof
> OpenLayers.Geometry.Collection,
> }}}
>
> changed to
>
> {{{
> is_collection: (options['geom_name'].substr(0, 5) == 'Multi' || options[
> 'geom_type' ] == 'GeometryCollection'),
> }}}
>
> Third, in function getControls (line 366, 369, 372) These are not check
> for Collection.
>
> {{{
> if (this.options.geom_name == 'LineString'' || this.options.geom_name ==
> 'Unknown') {
> if (this.options.geom_name == 'Polygon' || this.options.geom_name ==
> 'Unknown') {
> if (this.options.geom_name == 'Point' || this.options.geom_name ==
> 'Unknown') {
> }}}
>
> changed to
>
> {{{
> if (this.options.geom_name == 'LineString' || this.options.geom_name ==
> 'MultiLineString' || this.options.geom_name == 'Unknown') {
> if (this.options.geom_name == 'Polygon' || this.options.geom_name ==
> 'MultiPolygon' || this.options.geom_name == 'Unknown') {
> if (this.options.geom_name == 'Point' || this.options.geom_name ==
> 'MultiPoint' || this.options.geom_name == 'Unknown') {
> }}}
New description:
I try to create my form with GeoDjango and I didn't found an good example
in document.
So, I use `django/contrib/gis/static/gis/js/OSMapWidget.js` and found that
have some of bugs.
First, in line 173 (miss .) eg. if `geom_name = 'MultiPoint'`, then
`options['geom_type']` will be `OpenLayers.GeometryMultiPoint`
{{{
else options['geom_type'] = eval('OpenLayers.Geometry' +
options['geom_name']);
}}}
changed to
{{{
else options['geom_type'] = eval('OpenLayers.Geometry.' +
options['geom_name']);
}}}
Second, line 181 (check is_collection) It is wrong use of function
"isinstanceof". It cannot check constructor isinstanceof constructor.
{{{
is_collection: options['geom_name'] instanceof
OpenLayers.Geometry.Collection,
}}}
changed to
{{{
is_collection: (options['geom_name'].substr(0, 5) == 'Multi' || options[
'geom_type' ] == 'GeometryCollection'),
}}}
Third, in function getControls (line 366, 369, 372) These are not check
for Collection.
{{{
if (this.options.geom_name == 'LineString'' || this.options.geom_name ==
'Unknown') {
if (this.options.geom_name == 'Polygon' || this.options.geom_name ==
'Unknown') {
if (this.options.geom_name == 'Point' || this.options.geom_name ==
'Unknown') {
}}}
changed to
{{{
if (this.options.geom_name == 'LineString' || this.options.geom_name ==
'MultiLineString' || this.options.geom_name == 'Unknown') {
if (this.options.geom_name == 'Polygon' || this.options.geom_name ==
'MultiPolygon' || this.options.geom_name == 'Unknown') {
if (this.options.geom_name == 'Point' || this.options.geom_name ==
'MultiPoint' || this.options.geom_name == 'Unknown') {
}}}
--
--
Ticket URL: <https://code.djangoproject.com/ticket/23137#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/064.8252d50c7bcb9be720660442d68f25c2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.