1//////////////////////////////////////////////////////////////////////////////////////// 2// Events // 3//////////////////////////////////////////////////////////////////////////////////////// 4//////////////////////////////////////////////////////////////////////////////////////// 5// Constants // 6//////////////////////////////////////////////////////////////////////////////////////// 7//////////////////////////////////////////////////////////////////////////////////////// 8// Variables // 9//////////////////////////////////////////////////////////////////////////////////////// 10var gmwdmapDataOptions = []; 11 12//////////////////////////////////////////////////////////////////////////////////////// 13// Constructor & Destructor // 14//////////////////////////////////////////////////////////////////////////////////////// 15 16function gmwdInitMainMap(el, excludeOverlays, key){ 17 18 gmwdmapData["main_map" + key] = new google.maps.Map(document.getElementById(el), { 19 center: {lat: gmwdmapData["centerLat" + key], lng: gmwdmapData["centerLng" + key]}, 20 zoom: gmwdmapData["zoom" + key], 21 maxZoom: gmwdmapData["maxZoom" + key], 22 minZoom: gmwdmapData["minZoom" + key], 23 scrollwheel: gmwdmapData["mapWhellScrolling" + key], 24 draggable: gmwdmapData["mapDragable" + key], 25 disableDoubleClickZoom: gmwdmapData["mapDbClickZoom" + key], 26 zoomControl: gmwdmapData["enableZoomControl" + key], 27 mapTypeControl: gmwdmapData["enableMapTypeControl" + key], 28 scaleControl: gmwdmapData["enableScaleControl" + key], 29 streetViewControl: gmwdmapData["enableStreetViewControl" + key], 30 fullscreenControl: gmwdmapData["enableFullscreenControl" + key], 31 rotateControl: gmwdmapData["enableRotateControl" + key], 32 zoomControlOptions:{ 33 position: gmwdmapData["zoomControlPosition" + key] 34 }, 35 mapTypeControlOptions:{ 36 position: gmwdmapData["mapTypeControlPosition" + key], 37 style: gmwdmapData["mapTypeControlStyle" + key] 38 }, 39 fullscreenControlOptions:{ 40 position: gmwdmapData["fullscreenControlPosition" + key] 41 }, 42 streetViewControlOptions:{ 43 position: gmwdmapData["streetViewControlPosition" + key] 44 }, 45 46 }); 47 gmwdmapData["main_map" + key].setTilt(45); 48 gmwdSetMapTypeId(key); 49 50 51 //themes 52 jQuery("#wd-map" + key).css("border-radius", gmwdmapData["mapBorderRadius" + key] + "px"); 53 gmwdmapData["main_map" + key].setOptions({styles:eval(gmwdmapData["mapTheme" + key])}); 54 55 //layers 56 gmwdSetLayers("bike", key); 57 gmwdSetLayers("traffic", key); 58 gmwdSetLayers("transit", key); 59 gmwdSetGeoRSSURL(key); 60 gmwdSetKMLURL(key); 61 gmwdSetFusionTableId(key); 62 63 if(excludeOverlays == false){ 64 // overlays 65 gmwdSetMapMarkers(key); 66 gmwdSetMapCircles(key); 67 gmwdSetMapPolygons(key); 68 gmwdSetMapPolylines(key); 69 gmwdSetMapRectangles(key); 70 } 71 72} 73 74function gmwdSetMapMarkers(_key){ 75 var mapMarker; 76 gmwdmapData["allMarkers" + _key] = []; 77 if(Object.keys(gmwdmapData["mapMarkers" + _key]).length > 0){ 78 for(var key in gmwdmapData["mapMarkers" + _key]){ 79 mapMarker = gmwdmapData["mapMarkers" + _key][key]; 80 var marker = new google.maps.Marker({ 81 map: gmwdmapData["main_map" + _key], 82 position: {lat: Number(mapMarker.lat), lng: Number(mapMarker.lng)} 83 }); 84 gmwdmapData["allMarkers" + _key].push(marker); 85 var infoWindow; 86 if(mapMarker.enable_info_window == 1){ 87 contentString = ''; 88 if(mapMarker.pic_url && gmwdmapData["infoWindowInfo" + _key].indexOf("pic") != -1){ 89 contentString = '<img src="' + mapMarker.pic_url + '" style="float:right; margin-left: 10px; max-width:100px">'; 90 } 91 if(gmwdmapData["infoWindowInfo" + _key].indexOf("title") != -1){ 92 contentString += '<div class="gmwd-infowindow-title">' + mapMarker.title + '</div>'; 93 } 94 if(gmwdmapData["infoWindowInfo" + _key].indexOf("address") != -1){ 95 96 contentString += '<div class="gmwd-infowindow-address">' + mapMarker.address + '</div>'; 97 } 98 if(gmwdmapData["infoWindowInfo" + _key].indexOf("desc") != -1){ 99 var description = typeof mapMarker.description == "object" ? decodeEntities(mapMarker.description.join("<br>")) : decodeEntities(mapMarker.description); 100 contentString += "<div style='max-width:300px;' class='gmwd-infowindow-description'>" + description + "</div>"; 101 } 102 if(gmwdmapData["enableDirections" + _key] == 1){ 103 contentString += "<div style='clear:both;'> <a href='javascript:void(0)' data-lat='" + Number(mapMarker.lat) + "' data-lng='" + Number(mapMarker.lng) + "' data-address='" + mapMarker.address + "' class='gmwd_direction' data-key='" + _key + "' onclick='showDirectionsBox(this);'>Get Directions</a></div>"; 104 } 105 infoWindow = new google.maps.InfoWindow({ 106 content: contentString, 107 disableAutoPan: false 108 }); 109 if(mapMarker.info_window_open == 1){ 110 infoWindow.open(gmwdmapData["main_map" + _key], marker); 111 } 112 gmwdmapData["infoWindows" + _key].push(infoWindow); 113 } 114 115 if(mapMarker.title){ 116 marker.setTitle(mapMarker.title); 117 } 118 119 var size = Number(mapMarker.marker_size); 120 if(mapMarker.custom_marker_url){ 121 var image = { 122 url : mapMarker.custom_marker_url, 123 scaledSize: new google.maps.Size(size, size) 124 }; 125 marker.setIcon(image); 126 } 127 else if(markerDefaultIcon){ 128 var image = { 129 url : markerDefaultIcon, 130 scaledSize: new google.maps.Size(size, size) 131 }; 132 marker.setIcon(image); 133 } 134 135 if(mapMarker.animation == "BOUNCE"){ 136 marker.setAnimation(google.maps.Animation.BOUNCE) 137 } 138 else if(mapMarker.animation == "DROP"){ 139 marker.setAnimation(google.maps.Animation.DROP) 140 } 141 else{ 142 marker.setAnimation(null); 143 } 144 145 //events 146 (function(overlay, row, overlayWindow, map, openEvent, overlayWindows, infoWindowtype, _key) { 147 148 google.maps.event.addListener(overlay, 'click', function() { 149 if(row.link_url){ 150 window.open(row.link_url); 151 } 152 if(openEvent == "click"){ 153 154 if(overlayWindow && row.enable_info_window == 1){ 155 for(var j=0; j < overlayWindows.length; j++){ 156 overlayWindows[j].open(null, null); 157 } 158 159 if(overlayWindow && infoWindowtype == 0){ 160 overlayWindow.open(map, overlay); 161 } 162 else if(infoWindowtype == 1){ 163 gmwdAdvancedInfoWindow(row, _key); 164 } 165 } 166 } 167 }); 168 google.maps.event.addListener(overlay, 'mouseover', function() { 169 if(openEvent == "hover"){ 170 171 if(row.enable_info_window == 1){ 172 for(var j=0; j < overlayWindows.length; j++){ 173 overlayWindows[j].open(null, null); 174 } 175 if(overlayWindow && infoWindowtype == 0){ 176 overlayWindow.open(map, overlay); 177 } 178 else if(infoWindowtype == 1){ 179 gmwdAdvancedInfoWindow(row, _key); 180 } 181 } 182 } 183 }); 184 185 }(marker, mapMarker, infoWindow, gmwdmapData["main_map" + _key], gmwdmapData["infoWindowOpenOn" + _key], gmwdmapData["infoWindows" + _key], gmwdmapData["infoWindowtype" + _key], _key)); 186 187 } 188 } 189 190 if(typeof gmwdmapData["markerCLustering" + _key] != "undefined" && gmwdmapData["markerCLustering" + _key] == "1" ){ 191 var options = [gmwdmapData["markerCLusteringZoom" + _key], gmwdmapData["markerCLusteringSize" + _key], gmwdmapData["markerCLusteringStyle" + _key]]; 192 193 createMarkerCluster(gmwdmapData["allMarkers" + _key], gmwdmapData["main_map" + _key], options); 194 } 195} 196 197function gmwdSetMapCircles(_key){
198 var mapCircle, circle, circleHover, circlMarker; 199 if(Object.keys(gmwdmapData["mapCircles" + _key]).length > 0){ 200 for(var key in gmwdmapData["mapCircles" + _key]){ 201 mapCircle = gmwdmapData["mapCircles" + _key][key]; 202 203 if(mapCircle.show_marker == 1){ 204 circleMarker = new google.maps.Marker({ 205 map: gmwdmapData["main_map" + _key], 206 position: {lat: Number(mapCircle.center_lat), lng: Number(mapCircle.center_lng) } 207 }); 208 if(markerDefaultIcon){ 209 var image = { 210 url : markerDefaultIcon, 211 scaledSize: new google.maps.Size(32, 32) 212 }; 213 circleMarker.setIcon(image); 214 } 215 circleMarker.setMap(gmwdmapData["main_map" + _key]); 216 if(mapCircle.enable_info_window == 1){ 217 (function(circleMarker) { 218 var infoWindow = new google.maps.InfoWindow({ 219 content: mapCircle.center_address, 220 disableAutoPan: false 221 }); 222 google.maps.event.addListener(circleMarker, 'click', function() { 223 for(var j=0; j < gmwdmapData["infoWindows" + _key].length; j++){ 224 gmwdmapData["infoWindows" + _key][j].open(null, null); 225 } 226 infoWindow.open(gmwdmapData["main_map" + _key], circleMarker); 227 gmwdmapData["infoWindows" + _key].push(infoWindow); 228 }); 229 }(circleMarker)); 230 } 231 gmwdmapData["allCircleMarkers" + _key].push(circlMarker); 232 } 233 234 circle = new google.maps.Circle({ 235 strokeWeight:Number(mapCircle.line_width), 236 strokeColor: "#" + mapCircle.line_color, 237 strokeOpacity: Number(mapCircle.line_opacity), 238 fillColor: "#" + mapCircle.fill_color, 239 fillOpacity: Number(mapCircle.fill_opacity), 240 center: {lat: Number(mapCircle.center_lat), lng: Number(mapCircle.center_lng) }, 241 radius: Number(mapCircle.radius) 242 }); 243 244 circleHover = new google.maps.Circle({ 245 strokeWeight:Number(mapCircle.line_width), 246 strokeColor: "#" + mapCircle.line_color_hover, 247 strokeOpacity: Number(mapCircle.line_opacity_hover), 248 fillColor: "#" + mapCircle.fill_color_hover, 249 fillOpacity: Number(mapCircle.fill_opacity_hover), 250 center: {lat: Number(mapCircle.center_lat), lng: Number(mapCircle.center_lng) }, 251 radius: Number(mapCircle.radius) 252 }); 253 254 gmwdmapData["allCircles" + _key].push(circle,circleHover); 255 circle.setMap(gmwdmapData["main_map" + _key]); 256 257 //events 258 (function(overlay, overlayHover, row, map) { 259 260 google.maps.event.addListener(overlayHover, 'click', function() { 261 if(row.link) 262 window.open(row.link); 263 }); 264 265 google.maps.event.addListener(overlay,"mouseover",function(){ 266 overlay.setMap(null); 267 overlayHover.setOptions({strokeWeight: Number(row.line_width)}); 268 overlayHover.setOptions({radius: Number(row.radius)}); 269 overlayHover.setMap(map); 270 }); 271 google.maps.event.addListener(overlayHover,"mouseover",function(){ 272 if(row.title){ 273 this.getMap().getDiv().setAttribute('title',row.title); 274 } 275 }); 276 google.maps.event.addListener(overlayHover,"mouseout",function(){ 277 this.getMap().getDiv().removeAttribute('title'); 278 overlayHover.setMap(null);
279 overlay.setMap(map); 280 }); 281 282 }(circle, circleHover, mapCircle, gmwdmapData["main_map" + _key])); 283 284 } 285 } 286 287} 288 289function gmwdSetMapRectangles(_key){ 290 var mapRectangle, rectangle, rectangleHover,bounds; 291 if(Object.keys(gmwdmapData["mapRectangles" + _key]).length > 0){ 292 for(var key in gmwdmapData["mapRectangles" + _key]){ 293 var bounds = []; 294 mapRectangle = gmwdmapData["mapRectangles" + _key][key]; 295 var southWestAr = mapRectangle.south_west.split(","); 296 var northEastAr = mapRectangle.north_east.split(","); 297 var southWest = new google.maps.LatLng(Number(southWestAr[0]),Number(southWestAr[1])); 298 var northEast = new google.maps.LatLng(Number(northEastAr[0]),Number(northEastAr[1])); 299 300 bounds = new google.maps.LatLngBounds(southWest,northEast); 301 if(mapRectangle.show_markers == 1){ 302 var topPositions = []; 303 topPositions.push(new google.maps.LatLng(southWest.lat(), southWest.lng())); 304 topPositions.push(new google.maps.LatLng(northEast.lat(), southWest.lng())); 305 topPositions.push(new google.maps.LatLng(northEast.lat(), northEast.lng())); 306 topPositions.push(new google.maps.LatLng(southWest.lat(), northEast.lng())); 307 for(var j=0; j<topPositions.length; j++){ 308 var marker = new google.maps.Marker({ 309 position: topPositions[j], 310 map: gmwdmapData["main_map" + _key] 311 }); 312 if(markerDefaultIcon){ 313 var image = { 314 url : markerDefaultIcon, 315 scaledSize: new google.maps.Size(32, 32) 316 }; 317 marker.setIcon(image); 318 } 319 if(mapRectangle.enable_info_windows == 1){ 320 showPoiInfoWindow(gmwdmapData["main_map" + _key], marker, _key); 321 } 322 } 323 } 324 rectangle = new google.maps.Rectangle({ 325 strokeWeight:Number(mapRectangle.line_width), 326 strokeColor: "#" + mapRectangle.line_color, 327 strokeOpacity: Number(mapRectangle.line_opacity), 328 fillColor: "#" + mapRectangle.fill_color, 329 fillOpacity: Number(mapRectangle.fill_opacity), 330 bounds: bounds, 331 }); 332 333 rectangleHover = new google.maps.Rectangle({ 334 strokeWeight:Number(mapRectangle.line_width), 335 strokeColor: "#" + mapRectangle.line_color_hover, 336 strokeOpacity: Number(mapRectangle.line_opacity_hover), 337 fillColor: "#" + mapRectangle.fill_color_hover, 338 fillOpacity: Number(mapRectangle.fill_opacity_hover), 339 bounds: bounds, 340 }); 341 gmwdmapData["allRectangles" + _key].push(rectangle, rectangleHover); 342 rectangle.setMap(gmwdmapData["main_map" + _key]); 343 344 (function(overlay, overlayHover, row, map) { 345 google.maps.event.addListener(overlayHover, 'click', function() { 346 if(row.link) 347 window.open(row.link); 348 }); 349 350 google.maps.event.addListener(overlay,"mouseover",function(){ 351 overlay.setMap(null); 352 overlayHover.setMap(map); 353 }); 354 google.maps.event.addListener(overlayHover,"mouseover",function(){ 355 if(row.title){ 356 this.getMap().getDiv().setAttribute('title',row.title); 357 } 358 }); 359 google.maps.event.addListener(overlayHover,"mouseout",function(){ 360 this.getMap().getDiv().removeAttribute('title'); 361 overlayHover.setMap(null);
362 overlay.setMap(map); 363 }); 364 365 }(rectangle, rectangleHover, mapRectangle, gmwdmapData["main_map" + _key])); 366 367 } 368 } 369} 370function gmwdSetMapPolygons(_key){ 371 var mapPolygon, polygon, polygonHover; 372 var polygonsByAreas = {}; 373 var polygonsAreas = []; 374 if(Object.keys(gmwdmapData["mapPolygons" + _key]).length > 0){ 375 for(var key in gmwdmapData["mapPolygons" + _key]){ 376 var polygonCoord = []; 377 mapPolygon = gmwdmapData["mapPolygons" + _key][key]; 378 polygonData = mapPolygon.data.substr(1, mapPolygon.data.length-4).split("),("); 379 for(var j=0; j<polygonData.length; j++){ 380 var polygonMarker = polygonData[j].split(","); 381 if(mapPolygon.show_markers == 1){ 382 var marker = new google.maps.Marker({ 383 map: gmwdmapData["main_map" + _key], 384 position: {lat: Number(polygonMarker[0]), lng: Number(polygonMarker[1]) } 385 }); 386 if(markerDefaultIcon){ 387 var image = { 388 url : markerDefaultIcon, 389 scaledSize: new google.maps.Size(32, 32) 390 }; 391 marker.setIcon(image); 392 } 393 marker.setMap(gmwdmapData["main_map" + _key]); 394 gmwdmapData["allPolygonMarkers" + _key].push(marker); 395 } 396 if(mapPolygon.enable_info_windows == 1){ 397 showPoiInfoWindow(gmwdmapData["main_map" + _key], marker, _key); 398 } 399 polygonCoord.push(new google.maps.LatLng( Number(polygonMarker[0]), Number(polygonMarker[1]))); 400 } 401 402 polygon = new google.maps.Polygon({ 403 strokeWeight:Number(mapPolygon.line_width), 404 strokeColor: "#" + mapPolygon.line_color, 405 strokeOpacity: Number(mapPolygon.line_opacity), 406 fillColor: "#" + mapPolygon.fill_color, 407 fillOpacity: Number(mapPolygon.fill_opacity), 408 paths: polygonCoord, 409 }); 410 411 polygonHover = new google.maps.Polygon({ 412 strokeWeight:Number(mapPolygon.line_width), 413 strokeColor: "#" + mapPolygon.line_color_hover, 414 strokeOpacity: Number(mapPolygon.line_opacity_hover), 415 fillColor: "#" + mapPolygon.fill_color_hover, 416 fillOpacity: Number(mapPolygon.fill_opacity_hover), 417 paths: polygonCoord, 418 }); 419 gmwdmapData["allPolygons" + _key].push(polygon, polygonHover); 420 // polygon.setMap(gmwdmapData["main_map" + _key]); 421 var polygonArea = google.maps.geometry.spherical.computeArea(polygon.getPath()); 422 polygonsByAreas[polygonArea] = [polygon,polygonHover]; 423 polygonsAreas.push(polygonArea); 424 (function(overlay, overlayHover, row, map) { 425 google.maps.event.addListener(overlayHover, 'click', function() { 426 if(row.link) 427 window.open(row.link); 428 }); 429 430 google.maps.event.addListener(overlay,"mouseover",function(){ 431 overlay.setMap(null); 432 overlayHover.setMap(map); 433 }); 434 google.maps.event.addListener(overlayHover,"mouseover",function(){ 435 if(row.title){ 436 this.getMap().getDiv().setAttribute('title',row.title); 437 } 438 }); 439 google.maps.event.addListener(overlayHover,"mouseout",function(){ 440 this.getMap().getDiv().removeAttribute('title'); 441 overlayHover.setMap(null); 442 overlay.setMap(map); 443 }); 444 445 }(polygon, polygonHover, mapPolygon, gmwdmapData["main_map" + _key])); 446 447 } 448 } 449 polygonsAreas.sort(function(a,b){return b - a}); 450 451 for(var i=0; i< polygonsAreas.length ; i++){ 452 polygonsByAreas[polygonsAreas[i]][0].setMap(gmwdmapData["main_map" + _key]); 453 polygonsByAreas[polygonsAreas[i]][0].setOptions({zIndex: i+1}); 454 polygonsByAreas[polygonsAreas[i]][1].setOptions({zIndex: i+1}); 455 456 } 457 458} 459 460function gmwdSetMapPolylines(_key){ 461 var mapPolyline, polyline, polylineHover; 462 if(Object.keys(gmwdmapData["mapPolylines" + _key]).length > 0){ 463 for(var key in gmwdmapData["mapPolylines" + _key]){ 464 var polylineCoord = []; 465 mapPolyline = gmwdmapData["mapPolylines" + _key][key]; 466 polylineData = mapPolyline.data.substr(1, mapPolyline.data.length-4).split("),("); 467 for(var j=0; j<polylineData.length; j++){ 468 var polylineMarker = polylineData[j].split(","); 469 if(mapPolyline.show_markers == 1){ 470 var marker = new google.maps.Marker({ 471 map: gmwdmapData["main_map" + _key], 472 position: {lat: Number(polylineMarker[0]), lng: Number(polylineMarker[1]) } 473 }); 474 gmwdmapData["allPolylineMarkers" + _key].push(marker); 475 if(markerDefaultIcon){ 476 var image = { 477 url : markerDefaultIcon, 478 scaledSize: new google.maps.Size(32, 32) 479 }; 480 marker.setIcon(image); 481 } 482 marker.setMap(gmwdmapData["main_map" + _key]); 483 } 484 if(mapPolyline.enable_info_windows == 1){ 485 showPoiInfoWindow(gmwdmapData["main_map" + _key], marker, _key); 486 } 487 polylineCoord.push(new google.maps.LatLng( Number(polylineMarker[0]), Number(polylineMarker[1]))); 488 } 489 490 polyline = new google.maps.Polyline({ 491 strokeWeight:Number(mapPolyline.line_width), 492 strokeColor: "#" + mapPolyline.line_color, 493 strokeOpacity: Number(mapPolyline.line_opacity), 494 path: polylineCoord, 495 geodesic: true, 496 }); 497 498 polylineHover = new google.maps.Polyline({ 499 strokeWeight:Number(mapPolyline.line_width), 500 strokeColor: "#" + mapPolyline.line_color_hover, 501 strokeOpacity: Number(mapPolyline.line_opacity_hover), 502 path: polylineCoord, 503 geodesic: true, 504 }); 505 gmwdmapData["allPolylines" + _key].push(polyline, polylineHover ); 506 polyline.setMap(gmwdmapData["main_map" + _key]); 507 508 (function(overlay, overlayHover, row, map) { 509 google.maps.event.addListener(overlayHover, 'click', function() { 510 if(row.link) 511 window.open(row.link); 512 }); 513 514 google.maps.event.addListener(overlay,"mouseover",function(){ 515 overlay.setMap(null);
516 overlayHover.setMap(map); 517 }); 518 google.maps.event.addListener(overlayHover,"mouseover",function(){ 519 if(row.title){ 520 this.getMap().getDiv().setAttribute('title',row.title); 521 } 522 }); 523 google.maps.event.addListener(overlayHover,"mouseout",function(){ 524 this.getMap().getDiv().removeAttribute('title'); 525 overlayHover.setMap(null); 526 overlay.setMap(map); 527 }); 528 529 }(polyline, polylineHover, mapPolyline, gmwdmapData["main_map" + _key])); 530 531 532 } 533 } 534 535} 536function showPoiInfoWindow(map, marker, key){ 537 538 (function(marker, map) { 539 var geocoder = new google.maps.Geocoder(); 540 geocoder.geocode({ 541 latLng: marker.getPosition() 542 }, 543 function(responses) { 544 if (responses && responses.length > 0) { 545 var infoWindow = new google.maps.InfoWindow({ 546 content: responses[0].formatted_address, 547 disableAutoPan: false 548 }); 549 google.maps.event.addListener(marker, 'click', function() { 550 for(var j=0; j < gmwdmapData["infoWindows" + key].length; j++){ 551 gmwdmapData["infoWindows" + key][j].open(null, null); 552 } 553 infoWindow.open(map, marker); 554 gmwdmapData["infoWindows" + key].push(infoWindow); 555 }); 556 } 557 }); 558 }(marker, map)); 559} 560
561//////////////////////////////////////////////////////////////////////////////////////// 562// Public Methods // 563//////////////////////////////////////////////////////////////////////////////////////// 564 565 566function gmwdSetMapTypeId(key){ 567 switch(gmwdmapData["mapType" + key]){ 568 case "0" : 569 gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.ROADMAP); 570 break; 571 case "1" : 572 gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.SATELLITE); 573 break; 574 case "2": 575 gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.HYBRID); 576 break; 577 case "3": 578 gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.TERRAIN); 579 break; 580 } 581} 582 583 584function gmwdSetLayers(type, key){ 585 switch(type){ 586 case "bike" : 587 if(gmwdmapData["enableBykeLayer" + key] == 1){ 588 gmwdmapDataOptions["bikeLayer" + key] = new google.maps.BicyclingLayer(); 589 gmwdmapDataOptions["bikeLayer" + key].setMap(gmwdmapData["main_map" + key]); 590 } 591 else{ 592 if(gmwdmapDataOptions["bikeLayer" + key]){ 593 gmwdmapDataOptions["bikeLayer" + key].setMap(null); 594 } 595 } 596 break; 597 case "traffic" : 598 if(gmwdmapData["enableTrafficLayer" + key] == 1){ 599 gmwdmapDataOptions["trafficLayer" + key] = new google.maps.TrafficLayer(); 600 gmwdmapDataOptions["trafficLayer" + key].setMap(gmwdmapData["main_map" + key]); 601 } 602 else{ 603 if(gmwdmapDataOptions["trafficLayer" + key]){ 604 gmwdmapDataOptions["trafficLayer" + key].setMap(null); 605 } 606 } 607 break; 608 case "transit" : 609 if(gmwdmapData["enableTransitLayer" + key] == 1){ 610 gmwdmapDataOptions["transitLayer" + key] = new google.maps.TransitLayer(); 611 gmwdmapDataOptions["transitLayer" + key].setMap(gmwdmapData["main_map" + key]); 612 } 613 else{ 614 if(gmwdmapDataOptions["transitLayer" + key]){ 615 gmwdmapDataOptions["transitLayer" + key].setMap(null); 616 } 617 } 618 break; 619 } 620} 621 622function gmwdSetGeoRSSURL(key){ 623 if(gmwdmapData["geoRSSURL" + key]){ 624 gmwdmapDataOptions["georssLayer" + key] = new google.maps.KmlLayer({ 625 url: gmwdmapData["geoRSSURL" + key] 626 }); 627 gmwdmapDataOptions["georssLayer" + key].setMap(gmwdmapData["main_map" + key]); 628 } 629 else{ 630 if(gmwdmapDataOptions["georssLayer" + key]){ 631 gmwdmapDataOptions["georssLayer" + key].setMap(null); 632 } 633 } 634} 635 636function gmwdSetKMLURL(key){ 637 if(gmwdmapData["KMLURL" + key]){ 638 gmwdmapDataOptions["ctaLayer" + key] = new google.maps.KmlLayer({ 639 url: gmwdmapData["KMLURL" + key] 640 }); 641 gmwdmapDataOptions["ctaLayer" + key].setMap(gmwdmapData["main_map" + key]); 642 } 643 else{ 644 if(gmwdmapDataOptions["ctaLayer" + key]){ 645 gmwdmapDataOptions["ctaLayer" + key].setMap(null); 646 } 647 } 648} 649 650function gmwdSetFusionTableId(key){ 651 if(gmwdmapData["fusionTableId" + key]){ 652 var fusionTableWhere = (gmwdmapData["fusionTableWhereField" + key] && gmwdmapData["fusionTableWhereOperator" + key] && gmwdmapData["fusionTableWhereValue" + key]) ? "'" + gmwdmapData["fusionTableWhereField" + key].trim() + "' " + gmwdmapData["fusionTableWhereOperator" + key] + ((gmwdmapData["fusionTableWhereOperator" + key] != "IN") ? " '" + gmwdmapData["fusionTableWhereValue" + key].trim() + "'" : " " + gmwdmapData["fusionTableWhereValue" + key].trim()) : ''; 653 654 gmwdmapDataOptions["fusionTablesLayer" + key] = new google.maps.FusionTablesLayer({ 655 query: { 656 select: '\'Geocodable address\'', 657 from: gmwdmapData["fusionTableId" + key], 658 where: fusionTableWhere 659 } 660 }); 661 gmwdmapDataOptions["fusionTablesLayer" + key].setMap(gmwdmapData["main_map" + key]); 662 } 663 else{ 664 if(gmwdmapDataOptions["fusionTablesLayer" + key]){ 665 gmwdmapDataOptions["fusionTablesLayer" + key].setMap(null); 666 } 667 } 668 669} 670 671 672 673 674 675//////////////////////////////////////////////////////////////////////////////////////// 676// Getters & Setters // 677//////////////////////////////////////////////////////////////////////////////////////// 678 679//////////////////////////////////////////////////////////////////////////////////////// 680// Private Methods // 681//////////////////////////////////////////////////////////////////////////////////////// 682//////////////////////////////////////////////////////////////////////////////////////// 683// Listeners // 684////////////////////////////////////////////////////////////////////////////////////////
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.