391 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			391 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								mxn.register('yahoo', {	
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Mapstraction: {
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									init: function(element,api) {		
							 | 
						||
| 
								 | 
							
										var me = this;
							 | 
						||
| 
								 | 
							
										if (YMap) {
							 | 
						||
| 
								 | 
							
											this.maps[api] = new YMap(element);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											YEvent.Capture(this.maps[api], EventsList.MouseClick, function(event,location) {
							 | 
						||
| 
								 | 
							
												me.clickHandler(location.Lat, location.Lon, location, me);
							 | 
						||
| 
								 | 
							
												me.click.fire({'location': new mxn.LatLonPoint(location.Lat, location.Lon)});
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
											YEvent.Capture(this.maps[api], EventsList.changeZoom, function() {
							 | 
						||
| 
								 | 
							
												me.moveendHandler(me);
							 | 
						||
| 
								 | 
							
												me.changeZoom.fire();
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
											YEvent.Capture(this.maps[api], EventsList.endPan, function() {
							 | 
						||
| 
								 | 
							
												me.moveendHandler(me);
							 | 
						||
| 
								 | 
							
												me.endPan.fire();
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
											YEvent.Capture(this.maps[api], EventsList.endAutoPan, function() {
							 | 
						||
| 
								 | 
							
												me.endPan.fire();
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											this.loaded[api] = true;
							 | 
						||
| 
								 | 
							
											me.load.fire();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else {
							 | 
						||
| 
								 | 
							
											alert(api + ' map script not imported');
							 | 
						||
| 
								 | 
							
										}  
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									applyOptions: function(){
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										/*
							 | 
						||
| 
								 | 
							
										if (this.options.enableDragging) {
							 | 
						||
| 
								 | 
							
											map.enableDragMap();
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											map.disableDragMap();
							 | 
						||
| 
								 | 
							
										}*/
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									resizeTo: function(width, height){	
							 | 
						||
| 
								 | 
							
										this.maps[this.api].resizeTo(new YSize(width,height));
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									addControls: function( args ) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										if (args.pan) {
							 | 
						||
| 
								 | 
							
											map.addPanControl();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else {
							 | 
						||
| 
								 | 
							
											// Yahoo doesn't check the pan control is there before trying to remove it
							 | 
						||
| 
								 | 
							
											// so throws an exception :(
							 | 
						||
| 
								 | 
							
											map.addPanControl();
							 | 
						||
| 
								 | 
							
											map.removePanControl();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										if (args.zoom == 'large') {
							 | 
						||
| 
								 | 
							
											map.addZoomLong();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if ( args.zoom == 'small' ) {
							 | 
						||
| 
								 | 
							
											map.addZoomShort();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else {
							 | 
						||
| 
								 | 
							
											map.removeZoomScale();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									addSmallControls: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.addPanControl();
							 | 
						||
| 
								 | 
							
										map.addZoomShort();
							 | 
						||
| 
								 | 
							
										this.addControlsArgs.pan = true;
							 | 
						||
| 
								 | 
							
										this.addControlsArgs.zoom = 'small';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									addLargeControls: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.addPanControl();
							 | 
						||
| 
								 | 
							
										map.addZoomLong();
							 | 
						||
| 
								 | 
							
										this.addControlsArgs.pan = true;  // keep the controls in case of swap
							 | 
						||
| 
								 | 
							
										this.addControlsArgs.zoom = 'large';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									addMapTypeControls: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.addTypeControl();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									dragging: function(on) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										if (on) {
							 | 
						||
| 
								 | 
							
											map.enableDragMap();
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											map.disableDragMap();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setCenterAndZoom: function(point, zoom) { 
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var pt = point.toProprietary(this.api);
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										var yzoom = 18 - zoom; // maybe?
							 | 
						||
| 
								 | 
							
								        map.drawZoomAndCenter(pt,yzoom);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									addMarker: function(marker, old) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var pin = marker.toProprietary(this.api);
							 | 
						||
| 
								 | 
							
										map.addOverlay(pin);
							 | 
						||
| 
								 | 
							
										YEvent.Capture(pin, EventsList.MouseClick, function() {
							 | 
						||
| 
								 | 
							
											marker.click.fire();
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
										YEvent.Capture(pin, EventsList.openSmartWindow, function() {
							 | 
						||
| 
								 | 
							
											marker.openInfoBubble.fire();
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
										YEvent.Capture(pin, EventsList.closeSmartWindow, function() {
							 | 
						||
| 
								 | 
							
											marker.closeInfoBubble.fire();
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
										return pin;
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									removeMarker: function(marker) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.removeOverlay(marker.proprietary_marker);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									removeAllMarkers: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.removeMarkersAll();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									declutterMarkers: function(opts) {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									addPolyline: function(polyline, old) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var pl = polyline.toProprietary(this.api);
							 | 
						||
| 
								 | 
							
										map.addOverlay(pl);
							 | 
						||
| 
								 | 
							
										return pl;
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									removePolyline: function(polyline) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.removeOverlay(polyline.proprietary_polyline);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									getCenter: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var pt = map.getCenterLatLon();
							 | 
						||
| 
								 | 
							
								        var point = new mxn.LatLonPoint(pt.Lat, pt.Lon);
							 | 
						||
| 
								 | 
							
										return point;
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setCenter: function(point, options) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var pt = point.toProprietary(this.api);
							 | 
						||
| 
								 | 
							
										map.panToLatLon(pt);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setZoom: function(zoom) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var yzoom = 18 - zoom; // maybe?
							 | 
						||
| 
								 | 
							
										map.setZoomLevel(yzoom);		  
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									getZoom: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										return 18 - map.getZoomLevel();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									getZoomLevelForBoundingBox: function( bbox ) {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setMapType: function(type) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										switch(type) {
							 | 
						||
| 
								 | 
							
											case mxn.Mapstraction.ROAD:
							 | 
						||
| 
								 | 
							
												map.setMapType(YAHOO_MAP_REG);
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
											case mxn.Mapstraction.SATELLITE:
							 | 
						||
| 
								 | 
							
												map.setMapType(YAHOO_MAP_SAT);
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
											case mxn.Mapstraction.HYBRID:
							 | 
						||
| 
								 | 
							
												map.setMapType(YAHOO_MAP_HYB);
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
											default:
							 | 
						||
| 
								 | 
							
												map.setMapType(YAHOO_MAP_REG);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									getMapType: function() {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var type = map.getCurrentMapType();
							 | 
						||
| 
								 | 
							
										switch(type) {
							 | 
						||
| 
								 | 
							
											case YAHOO_MAP_REG:
							 | 
						||
| 
								 | 
							
												return mxn.Mapstraction.ROAD;
							 | 
						||
| 
								 | 
							
											case YAHOO_MAP_SAT:
							 | 
						||
| 
								 | 
							
												return mxn.Mapstraction.SATELLITE;
							 | 
						||
| 
								 | 
							
											case YAHOO_MAP_HYB:
							 | 
						||
| 
								 | 
							
												return mxn.Mapstraction.HYBRID;
							 | 
						||
| 
								 | 
							
											default:
							 | 
						||
| 
								 | 
							
												return null;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									getBounds: function () {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var ybox = map.getBoundsLatLon();
							 | 
						||
| 
								 | 
							
								        return new mxn.BoundingBox(ybox.LatMin, ybox.LonMin, ybox.LatMax, ybox.LonMax);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setBounds: function(bounds){
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										var sw = bounds.getSouthWest();
							 | 
						||
| 
								 | 
							
										var ne = bounds.getNorthEast();
							 | 
						||
| 
								 | 
							
														
							 | 
						||
| 
								 | 
							
										if(sw.lon > ne.lon) {
							 | 
						||
| 
								 | 
							
											sw.lon -= 360;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										var center = new YGeoPoint((sw.lat + ne.lat)/2, (ne.lon + sw.lon)/2);
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										var container = map.getContainerSize();
							 | 
						||
| 
								 | 
							
										for(var zoom = 1 ; zoom <= 17 ; zoom++){
							 | 
						||
| 
								 | 
							
											var sw_pix = mxn.util.convertLatLonXY_Yahoo(sw,zoom);
							 | 
						||
| 
								 | 
							
											var ne_pix = mxn.util.convertLatLonXY_Yahoo(ne,zoom);
							 | 
						||
| 
								 | 
							
											if(sw_pix.x > ne_pix.x) {
							 | 
						||
| 
								 | 
							
												sw_pix.x -= (1 << (26 - zoom)); //earth circumference in pixel
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											if(Math.abs(ne_pix.x - sw_pix.x) <= container.width
							 | 
						||
| 
								 | 
							
												&& Math.abs(ne_pix.y - sw_pix.y) <= container.height){
							 | 
						||
| 
								 | 
							
												map.drawZoomAndCenter(center, zoom); //Call drawZoomAndCenter here: OK if called multiple times anyway
							 | 
						||
| 
								 | 
							
												break;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}		
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									addImageOverlay: function(id, src, opacity, west, south, east, north, oContext) {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setImagePosition: function(id) {
							 | 
						||
| 
								 | 
							
									   throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},	
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									addOverlay: function(url, autoCenterAndZoom) {
							 | 
						||
| 
								 | 
							
										var map = this.maps[this.api];
							 | 
						||
| 
								 | 
							
										map.addOverlay(new YGeoRSS(url));
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									addTileLayer: function(tile_url, opacity, copyright_text, min_zoom, max_zoom) {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									toggleTileLayer: function(tile_url) {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									getPixelRatio: function() {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';	
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									mousePosition: function(element) {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								LatLonPoint: {
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									toProprietary: function() {
							 | 
						||
| 
								 | 
							
										return new YGeoPoint(this.lat,this.lon);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									fromProprietary: function(yahooPoint) {
							 | 
						||
| 
								 | 
							
										this.lat = yahooPoint.Lat;
							 | 
						||
| 
								 | 
							
										this.lon = yahooPoint.Lon;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Marker: {
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									toProprietary: function() {
							 | 
						||
| 
								 | 
							
										var ymarker, size;
							 | 
						||
| 
								 | 
							
										var infoBubble, event_action, infoDiv, div;
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									    if(this.iconSize) {
							 | 
						||
| 
								 | 
							
									        size = new YSize(this.iconSize[0], this.iconSize[1]);
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
									    if(this.iconUrl) {
							 | 
						||
| 
								 | 
							
									        if(this.iconSize){
							 | 
						||
| 
								 | 
							
									            ymarker = new YMarker(this.location.toProprietary('yahoo'), new YImage(this.iconUrl, size));
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
									        else {
							 | 
						||
| 
								 | 
							
									            ymarker = new YMarker(this.location.toProprietary('yahoo'), new YImage(this.iconUrl));
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
									    else {
							 | 
						||
| 
								 | 
							
									        if(this.iconSize) {
							 | 
						||
| 
								 | 
							
									            ymarker = new YMarker(this.location.toProprietary('yahoo'), null, size);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
									        else {
							 | 
						||
| 
								 | 
							
									            ymarker = new YMarker(this.location.toProprietary('yahoo'));
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									    if(this.labelText) {
							 | 
						||
| 
								 | 
							
									        ymarker.addLabel(this.labelText);
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									    if(this.infoBubble) {
							 | 
						||
| 
								 | 
							
									        infoBubble = this.infoBubble;
							 | 
						||
| 
								 | 
							
									        if(this.hover) {
							 | 
						||
| 
								 | 
							
									            event_action = EventsList.MouseOver;
							 | 
						||
| 
								 | 
							
									        }
							 | 
						||
| 
								 | 
							
									        else {
							 | 
						||
| 
								 | 
							
									            event_action = EventsList.MouseClick;
							 | 
						||
| 
								 | 
							
									        }
							 | 
						||
| 
								 | 
							
									        YEvent.Capture(ymarker, event_action, function() {
							 | 
						||
| 
								 | 
							
									            ymarker.openSmartWindow(infoBubble);
							 | 
						||
| 
								 | 
							
									        });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									    if(this.infoDiv) {
							 | 
						||
| 
								 | 
							
									        infoDiv = this.infoDiv;
							 | 
						||
| 
								 | 
							
									        div = this.div;
							 | 
						||
| 
								 | 
							
									        if(this.hover) {
							 | 
						||
| 
								 | 
							
									            event_action = EventsList.MouseOver;
							 | 
						||
| 
								 | 
							
									        }
							 | 
						||
| 
								 | 
							
									        else {
							 | 
						||
| 
								 | 
							
									            event_action = EventsList.MouseClick;
							 | 
						||
| 
								 | 
							
									        }
							 | 
						||
| 
								 | 
							
									        YEvent.Capture(ymarker, event_action, function() {
							 | 
						||
| 
								 | 
							
									            document.getElementById(div).innerHTML = infoDiv;
							 | 
						||
| 
								 | 
							
									        });
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									    return ymarker;
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									openBubble: function() {
							 | 
						||
| 
								 | 
							
										var ypin = this.proprietary_marker;
							 | 
						||
| 
								 | 
							
								        ypin.openSmartWindow(this.infoBubble);
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									hide: function() {
							 | 
						||
| 
								 | 
							
										this.proprietary_marker.hide();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									show: function() {
							 | 
						||
| 
								 | 
							
										this.proprietary_marker.unhide();
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									update: function() {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Polyline: {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									toProprietary: function() {		
							 | 
						||
| 
								 | 
							
										var ypolyline;
							 | 
						||
| 
								 | 
							
									    var ypoints = [];
							 | 
						||
| 
								 | 
							
									    for (var i = 0, length = this.points.length ; i< length; i++){
							 | 
						||
| 
								 | 
							
									        ypoints.push(this.points[i].toProprietary('yahoo'));
							 | 
						||
| 
								 | 
							
									    }
							 | 
						||
| 
								 | 
							
									    ypolyline = new YPolyline(ypoints,this.color,this.width,this.opacity);
							 | 
						||
| 
								 | 
							
									    return ypolyline;
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									show: function() {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									hide: function() {
							 | 
						||
| 
								 | 
							
										throw 'Not implemented';
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								});
							 |