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