Skip to content

Instantly share code, notes, and snippets.

Created August 16, 2016 14:33
Show Gist options
  • Save anonymous/fada795e912ee468fefdba66cb7eccdf to your computer and use it in GitHub Desktop.
Save anonymous/fada795e912ee468fefdba66cb7eccdf to your computer and use it in GitHub Desktop.
Google Maps API v3 : Hardcoded Polygon [V2 PESSIMISTIC ALL POLYGONS - KUNDANHALLI] // source http://jsbin.com/bexeki
<html>
<head>
<meta name="description" content="[V2 PESSIMISTIC ALL POLYGONS - KUNDANHALLI]">
<title>Google Maps API v3 : Hardcoded Polygon</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>
<script type="text/javascript">
</script>
</head>
<body onload="initialize()">
<div id="map" style="width: 600px; height: 500px">
</div>
<script id="jsbin-javascript">
// V2 PESSIMISTIC ALL POLYGONS - KUNDANHALLI
var metros;
var polygon1, polygon2, polygon3, polygon4;
var gmarkers = [];
var points = [];
var hullPoints = [];
var map = null;
var polyline;
function initialize()
{
map = new google.maps.Map(document.getElementById("map"),
{
zoom: 13,
center: new google.maps.LatLng(12.9570465,77.71505359999992)
});
var currentMarker = new google.maps.Marker({
icon: {
strokeColor: "red",
scale: 3
},
position: new google.maps.LatLng(12.9570465,77.71505359999992),
map: map
});
currentMarker.setMap(map);
var lat_lngs15 =[
"12.9571993,77.7455185",
"12.9927791,77.7110639",
"12.9715903,77.7119452",
"12.9559519,77.7149195",
"12.956869,77.70144719999999",
"12.9571993,77.7455185",
]
var coords15 = getGoogleLatLng(lat_lngs15);
generateMarkers(lat_lngs15, map, 'red')
sortPoints2Polygon()
}
function sortPoints2Polygon() {
if (polyline) polyline.setMap(null);
// document.getElementById("hull_points").innerHTML = "";
points = [];
var bounds = new google.maps.LatLngBounds();
for (var i=0; i < gmarkers.length; i++) {
points.push(gmarkers[i].getPosition());
bounds.extend(gmarkers[i].getPosition());
}
var center = bounds.getCenter();
var bearing = [];
for (var i=0; i < points.length; i++) {
points[i].bearing = google.maps.geometry.spherical.computeHeading(center,points[i]);
}
points.sort(bearingsort);
polyline = new google.maps.Polygon({
map: map,
paths:points,
fillColor:"#FF0000",
strokeWidth:2,
fillOpacity:0.5,
strokeColor:"#0000FF",
strokeOpacity:0.5
});
}
function bearingsort(a,b) {
return (a.bearing - b.bearing);
}
function calculateConvexHull() {
if (polyline) polyline.setMap(null);
document.getElementById("hull_points").innerHTML = "";
points = [];
for (var i=0; i < gmarkers.length; i++) {
points.push(gmarkers[i].getPosition());
}
points.sort(sortPointY);
points.sort(sortPointX);
DrawHull();
}
function generateMarkers(lat_lngs, map, color) {
for(var i = 0 ; i < lat_lngs.length; i++ ){
var point = lat_lngs[i].split(',');
var point_lat = parseFloat(point[0]);
var point_lng = parseFloat(point[1]);
var currentMarker1 = new google.maps.Marker({
icon: {
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: color,
scale: 3
},
title: "index "+i,
position: new google.maps.LatLng(point_lat,point_lng),
map: map
});
currentMarker1.setMap(map);
gmarkers.push(currentMarker1);
points.push(new google.maps.LatLng(point_lat, point_lng))
}
}
function sortPointX(a,b) { return a.lng() - b.lng(); }
function sortPointY(a,b) { return a.lat() - b.lat(); }
function DrawHull() {
hullPoints = [];
chainHull_2D( points, points.length, hullPoints );
polyline = new google.maps.Polygon({
map: map,
paths:hullPoints,
fillColor:"#FF0000",
strokeWidth:2,
fillOpacity:0.5,
strokeColor:"#0000FF",
strokeOpacity:0.5
});
displayHullPts();
}
function displayHullPts() {
document.getElementById("hull_points").innerHTML = "";
for (var i=0; i < hullPoints.length; i++) {
document.getElementById("hull_points").innerHTML += hullPoints[i].toUrlValue()+"<br>";
}
}
function getGoogleLatLng(lat_lngs) {
var someArr = [];
for(var i = 0 ; i < lat_lngs.length; i++ ){
var point = lat_lngs[i].split(',');
var point_lat = parseFloat(point[0]);
var point_lng = parseFloat(point[1]);
someArr.push(new google.maps.LatLng(point_lat, point_lng));
}
return someArr;
}
</script>
<script id="jsbin-source-javascript" type="text/javascript">// V2 PESSIMISTIC ALL POLYGONS - KUNDANHALLI
var metros;
var polygon1, polygon2, polygon3, polygon4;
var gmarkers = [];
var points = [];
var hullPoints = [];
var map = null;
var polyline;
function initialize()
{
map = new google.maps.Map(document.getElementById("map"),
{
zoom: 13,
center: new google.maps.LatLng(12.9570465,77.71505359999992)
});
var currentMarker = new google.maps.Marker({
icon: {
strokeColor: "red",
scale: 3
},
position: new google.maps.LatLng(12.9570465,77.71505359999992),
map: map
});
currentMarker.setMap(map);
var lat_lngs15 =[
"12.9571993,77.7455185",
"12.9927791,77.7110639",
"12.9715903,77.7119452",
"12.9559519,77.7149195",
"12.956869,77.70144719999999",
"12.9571993,77.7455185",
]
var coords15 = getGoogleLatLng(lat_lngs15);
generateMarkers(lat_lngs15, map, 'red')
sortPoints2Polygon()
}
function sortPoints2Polygon() {
if (polyline) polyline.setMap(null);
// document.getElementById("hull_points").innerHTML = "";
points = [];
var bounds = new google.maps.LatLngBounds();
for (var i=0; i < gmarkers.length; i++) {
points.push(gmarkers[i].getPosition());
bounds.extend(gmarkers[i].getPosition());
}
var center = bounds.getCenter();
var bearing = [];
for (var i=0; i < points.length; i++) {
points[i].bearing = google.maps.geometry.spherical.computeHeading(center,points[i]);
}
points.sort(bearingsort);
polyline = new google.maps.Polygon({
map: map,
paths:points,
fillColor:"#FF0000",
strokeWidth:2,
fillOpacity:0.5,
strokeColor:"#0000FF",
strokeOpacity:0.5
});
}
function bearingsort(a,b) {
return (a.bearing - b.bearing);
}
function calculateConvexHull() {
if (polyline) polyline.setMap(null);
document.getElementById("hull_points").innerHTML = "";
points = [];
for (var i=0; i < gmarkers.length; i++) {
points.push(gmarkers[i].getPosition());
}
points.sort(sortPointY);
points.sort(sortPointX);
DrawHull();
}
function generateMarkers(lat_lngs, map, color) {
for(var i = 0 ; i < lat_lngs.length; i++ ){
var point = lat_lngs[i].split(',');
var point_lat = parseFloat(point[0]);
var point_lng = parseFloat(point[1]);
var currentMarker1 = new google.maps.Marker({
icon: {
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: color,
scale: 3
},
title: "index "+i,
position: new google.maps.LatLng(point_lat,point_lng),
map: map
});
currentMarker1.setMap(map);
gmarkers.push(currentMarker1);
points.push(new google.maps.LatLng(point_lat, point_lng))
}
}
function sortPointX(a,b) { return a.lng() - b.lng(); }
function sortPointY(a,b) { return a.lat() - b.lat(); }
function DrawHull() {
hullPoints = [];
chainHull_2D( points, points.length, hullPoints );
polyline = new google.maps.Polygon({
map: map,
paths:hullPoints,
fillColor:"#FF0000",
strokeWidth:2,
fillOpacity:0.5,
strokeColor:"#0000FF",
strokeOpacity:0.5
});
displayHullPts();
}
function displayHullPts() {
document.getElementById("hull_points").innerHTML = "";
for (var i=0; i < hullPoints.length; i++) {
document.getElementById("hull_points").innerHTML += hullPoints[i].toUrlValue()+"<br>";
}
}
function getGoogleLatLng(lat_lngs) {
var someArr = [];
for(var i = 0 ; i < lat_lngs.length; i++ ){
var point = lat_lngs[i].split(',');
var point_lat = parseFloat(point[0]);
var point_lng = parseFloat(point[1]);
someArr.push(new google.maps.LatLng(point_lat, point_lng));
}
return someArr;
}</script></body>
</html>
// V2 PESSIMISTIC ALL POLYGONS - KUNDANHALLI
var metros;
var polygon1, polygon2, polygon3, polygon4;
var gmarkers = [];
var points = [];
var hullPoints = [];
var map = null;
var polyline;
function initialize()
{
map = new google.maps.Map(document.getElementById("map"),
{
zoom: 13,
center: new google.maps.LatLng(12.9570465,77.71505359999992)
});
var currentMarker = new google.maps.Marker({
icon: {
strokeColor: "red",
scale: 3
},
position: new google.maps.LatLng(12.9570465,77.71505359999992),
map: map
});
currentMarker.setMap(map);
var lat_lngs15 =[
"12.9571993,77.7455185",
"12.9927791,77.7110639",
"12.9715903,77.7119452",
"12.9559519,77.7149195",
"12.956869,77.70144719999999",
"12.9571993,77.7455185",
]
var coords15 = getGoogleLatLng(lat_lngs15);
generateMarkers(lat_lngs15, map, 'red')
sortPoints2Polygon()
}
function sortPoints2Polygon() {
if (polyline) polyline.setMap(null);
// document.getElementById("hull_points").innerHTML = "";
points = [];
var bounds = new google.maps.LatLngBounds();
for (var i=0; i < gmarkers.length; i++) {
points.push(gmarkers[i].getPosition());
bounds.extend(gmarkers[i].getPosition());
}
var center = bounds.getCenter();
var bearing = [];
for (var i=0; i < points.length; i++) {
points[i].bearing = google.maps.geometry.spherical.computeHeading(center,points[i]);
}
points.sort(bearingsort);
polyline = new google.maps.Polygon({
map: map,
paths:points,
fillColor:"#FF0000",
strokeWidth:2,
fillOpacity:0.5,
strokeColor:"#0000FF",
strokeOpacity:0.5
});
}
function bearingsort(a,b) {
return (a.bearing - b.bearing);
}
function calculateConvexHull() {
if (polyline) polyline.setMap(null);
document.getElementById("hull_points").innerHTML = "";
points = [];
for (var i=0; i < gmarkers.length; i++) {
points.push(gmarkers[i].getPosition());
}
points.sort(sortPointY);
points.sort(sortPointX);
DrawHull();
}
function generateMarkers(lat_lngs, map, color) {
for(var i = 0 ; i < lat_lngs.length; i++ ){
var point = lat_lngs[i].split(',');
var point_lat = parseFloat(point[0]);
var point_lng = parseFloat(point[1]);
var currentMarker1 = new google.maps.Marker({
icon: {
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor: color,
scale: 3
},
title: "index "+i,
position: new google.maps.LatLng(point_lat,point_lng),
map: map
});
currentMarker1.setMap(map);
gmarkers.push(currentMarker1);
points.push(new google.maps.LatLng(point_lat, point_lng))
}
}
function sortPointX(a,b) { return a.lng() - b.lng(); }
function sortPointY(a,b) { return a.lat() - b.lat(); }
function DrawHull() {
hullPoints = [];
chainHull_2D( points, points.length, hullPoints );
polyline = new google.maps.Polygon({
map: map,
paths:hullPoints,
fillColor:"#FF0000",
strokeWidth:2,
fillOpacity:0.5,
strokeColor:"#0000FF",
strokeOpacity:0.5
});
displayHullPts();
}
function displayHullPts() {
document.getElementById("hull_points").innerHTML = "";
for (var i=0; i < hullPoints.length; i++) {
document.getElementById("hull_points").innerHTML += hullPoints[i].toUrlValue()+"<br>";
}
}
function getGoogleLatLng(lat_lngs) {
var someArr = [];
for(var i = 0 ; i < lat_lngs.length; i++ ){
var point = lat_lngs[i].split(',');
var point_lat = parseFloat(point[0]);
var point_lng = parseFloat(point[1]);
someArr.push(new google.maps.LatLng(point_lat, point_lng));
}
return someArr;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment