#23137 closed Bug (fixed)

Error when use OSMapWidget.js

Reported by: koyoyo Owned by: nobody
Component: GIS Version: 1.6
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by timo)

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') {

Change History (4)

comment:1 Changed 10 months ago by timo

  • Description modified (diff)
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

comment:2 Changed 10 months ago by claudep

  • Triage Stage changed from Unreviewed to Accepted

These issues should have been fixed in commit [457c16d0d607]. Could you please check that they are solving your issues? In that case, we might consider backporting the patch to 1.6.

comment:3 Changed 10 months ago by koyoyo

Sorry for my late, It works. Thanks.

comment:4 Changed 10 months ago by claudep

  • Resolution set to fixed
  • Status changed from new to closed

OK, thanks for the feedback. Backported in 1.6 in [f5e8376288783554e4da39].

Note: See TracTickets for help on using tickets.
Back to Top