LinkStack/assets/js/map.js

205 lines
5.0 KiB
JavaScript

/* ====== Index ======
1. BASIC MAP
2. MAP WITH MARKER
3. POLYGONAL MAP
4. POLYLINE MAP
5. MULTIPLE MARKER
6. STYLED MAP
====== End ======*/
$(function() {
"use strict";
/*======== 1. BASIC MAP ========*/
function basicMap() {
var denver = new google.maps.LatLng(39.5501, -105.7821);
var map = new google.maps.Map(document.getElementById("basicMap"), {
zoom: 8,
center: denver
});
}
/*======== 2. MAP WITH MARKER ========*/
function markerMap() {
var colorado = new google.maps.LatLng(38.82505, -104.821752);
var map = new google.maps.Map(document.getElementById("mapMarker"), {
zoom: 8,
center: colorado
});
var contentString =
'<div id="content">' +
'<h4 id="infoTitle" class="info-title">Colorado</h4>' +
"</div>";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: colorado,
map: map
});
infowindow.open(map, marker);
marker.addListener("click", function() {
infowindow.open(map, marker);
});
}
/*======== 3. POLYGONAL MAP ========*/
function polyMap() {
var center = new google.maps.LatLng(37.347442, -91.242551);
var map = new google.maps.Map(document.getElementById("polygonalMap"), {
zoom: 5,
center: center,
mapTypeId: "terrain"
});
// Define the LatLng coordinates for the polygon's path.
var ractangleCoords = [
{ lat: 39.086254, lng: -94.567509 },
{ lat: 35.293261, lng: -97.210534 },
{ lat: 36.058717, lng: -86.863566 },
{ lat: 38.498833, lng: -90.133947 },
{ lat: 39.086254, lng: -94.567509 }
];
// Construct the polygon.
var kansasRact = new google.maps.Polygon({
paths: ractangleCoords,
strokeColor: "#4c84ff",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#4c84ff",
fillOpacity: 0.35
});
kansasRact.setMap(map);
}
/*======== 4. POLYLINE MAP ========*/
function polylineMap() {
var center = new google.maps.LatLng(39.399273, -86.151248);
var map = new google.maps.Map(document.getElementById("polylineMap"), {
zoom: 5,
center: center,
mapTypeId: "terrain"
});
var flightPlanCoordinates = [
{ lat: 39.08199, lng: -94.568882 },
{ lat: 38.538338, lng: -90.220769 },
{ lat: 39.399273, lng: -86.151248 },
{ lat: 38.830073, lng: -77.098642 }
];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: "#4c84ff",
strokeOpacity: 1.0,
strokeWeight: 3
});
flightPath.setMap(map);
}
/*======== 5. MULTIPLE MARKER ========*/
function multiMarkerMap() {
var locations = [
["Bondi Beach", -33.890542, 151.274856, 4],
["Coogee Beach", -33.923036, 151.259052, 5],
["Cronulla Beach", -34.028249, 151.157507, 3],
["Manly Beach", -33.80010128657071, 151.28747820854187, 2],
["Maroubra Beach", -33.950198, 151.259302, 1]
];
var center = new google.maps.LatLng(-33.92, 151.25);
var map = new google.maps.Map(document.getElementById("multiMarkerMap"), {
zoom: 10,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(
marker,
"click",
(function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
};
})(marker, i)
);
}
}
/*======== 6. STYLED MAP ========*/
function styleMap() {
var style = [
{
stylers: [
{
hue: "#2c3e50"
},
{
saturation: 250
}
]
},
{
featureType: "road",
elementType: "geometry",
stylers: [
{
lightness: 50
},
{
visibility: "simplified"
}
]
},
{
featureType: "road",
elementType: "labels",
stylers: [
{
visibility: "off"
}
]
}
];
var dakota = new google.maps.LatLng(44.3341, -100.305);
var map = new google.maps.Map(document.getElementById("styleMap"), {
zoom: 7,
center: dakota,
mapTypeId: "roadmap",
styles: style
});
}
if (document.getElementById("google-map")) {
google.maps.event.addDomListener(window, "load", basicMap);
google.maps.event.addDomListener(window, "load", markerMap);
google.maps.event.addDomListener(window, "load", polyMap);
google.maps.event.addDomListener(window, "load", polylineMap);
google.maps.event.addDomListener(window, "load", multiMarkerMap);
google.maps.event.addDomListener(window, "load", styleMap);
}
});