POI dict and polyline support
Added support for filter functions to return dicts. Added support for filter functions to return a list of coordinates to draw lines between when shown.
This commit is contained in:
@@ -216,6 +216,22 @@ def main():
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result, hovertext=result)
|
||||
elif type(result) == tuple:
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result[1], hovertext=result[0])
|
||||
# Dict support to allow more flexible things in the future as well as polylines on the map.
|
||||
elif type(result) == dict:
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result['text'])
|
||||
# Use custom hovertext if provided...
|
||||
if 'hovertext' in result and isinstance(result['hovertext'], basestring):
|
||||
d['hovertext'] = result['hovertext']
|
||||
else: # ...otherwise default to display text.
|
||||
d['hovertext'] = result['text']
|
||||
if 'polyline' in result and type(result['polyline']) == tuple: #if type(result.get('polyline', '')) == tuple:
|
||||
d['polyline'] = []
|
||||
for point in result['polyline']:
|
||||
# This poor man's validation code almost definately needs improving.
|
||||
if type(point) == dict:
|
||||
d['polyline'].append(dict(x=point['x'],y=point['y'],z=point['z']))
|
||||
if isinstance(result['color'], basestring):
|
||||
d['strokeColor'] = result['color']
|
||||
if "icon" in poi:
|
||||
d.update({"icon": poi['icon']})
|
||||
if "createInfoWindow" in poi:
|
||||
@@ -228,6 +244,22 @@ def main():
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result, hovertext=result)
|
||||
elif type(result) == tuple:
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result[1], hovertext=result[0])
|
||||
# Dict support to allow more flexible things in the future as well as polylines on the map.
|
||||
elif type(result) == dict:
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result['text'])
|
||||
# Use custom hovertext if provided...
|
||||
if 'hovertext' in result and isinstance(result['hovertext'], basestring):
|
||||
d['hovertext'] = result['hovertext']
|
||||
else: # ...otherwise default to display text.
|
||||
d['hovertext'] = result['text']
|
||||
if 'polyline' in result and type(result['polyline']) == tuple: #if type(result.get('polyline', '')) == tuple:
|
||||
d['polyline'] = []
|
||||
for point in result['polyline']:
|
||||
# This poor man's validation code almost definately needs improving.
|
||||
if type(point) == dict:
|
||||
d['polyline'].append(dict(x=point['x'],y=point['y'],z=point['z']))
|
||||
if isinstance(result['color'], basestring):
|
||||
d['strokeColor'] = result['color']
|
||||
if "icon" in poi:
|
||||
d.update({"icon": poi['icon']})
|
||||
if "createInfoWindow" in poi:
|
||||
@@ -240,6 +272,22 @@ def main():
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result, hovertext=result)
|
||||
elif type(result) == tuple:
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result[1], hovertext=result[0])
|
||||
# Dict support to allow more flexible things in the future as well as polylines on the map.
|
||||
elif type(result) == dict:
|
||||
d = dict(x=poi['x'], y=poi['y'], z=poi['z'], text=result['text'])
|
||||
# Use custom hovertext if provided...
|
||||
if 'hovertext' in result and isinstance(result['hovertext'], basestring):
|
||||
d['hovertext'] = result['hovertext']
|
||||
else: # ...otherwise default to display text.
|
||||
d['hovertext'] = result['text']
|
||||
if 'polyline' in result and type(result['polyline']) == tuple: #if type(result.get('polyline', '')) == tuple:
|
||||
d['polyline'] = []
|
||||
for point in result['polyline']:
|
||||
# This poor man's validation code almost definately needs improving.
|
||||
if type(point) == dict:
|
||||
d['polyline'].append(dict(x=point['x'],y=point['y'],z=point['z']))
|
||||
if isinstance(result['color'], basestring):
|
||||
d['strokeColor'] = result['color']
|
||||
if "icon" in poi:
|
||||
d.update({"icon": poi['icon']})
|
||||
if "createInfoWindow" in poi:
|
||||
|
||||
@@ -474,6 +474,22 @@ overviewer.views.SignControlView = Backbone.View.extend({
|
||||
}
|
||||
}
|
||||
dataRoot[i].markerObjs.push(marker);
|
||||
// Polyline stuff added by FreakusGeekus. Probably needs work.
|
||||
if (typeof entity['polyline'] != 'undefined') {
|
||||
var polypath = new Array();
|
||||
for (point in entity.polyline) {
|
||||
polypath.push(overviewer.util.fromWorldToLatLng(entity.polyline[point].x, entity.polyline[point].y, entity.polyline[point].z, overviewer.mapView.options.currentTileSet));
|
||||
}
|
||||
|
||||
var polyline = new google.maps.Polyline({
|
||||
'path': polypath,
|
||||
'clickable': false,
|
||||
'map': overviewer.map,
|
||||
'visible': false,
|
||||
'strokeColor': entity['strokeColor']
|
||||
});
|
||||
dataRoot[i].markerObjs.push(polyline);
|
||||
}
|
||||
}
|
||||
dataRoot[i].created = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user