Locator-Berechnung
function setCookie(name, value, expires, path, domain, secure) {
// Set time, it's in milliseconds var today = new Date(); today.setTime(today.getTime());
/* If the expires variable is set, make the correct expires time, the current script below will set it for x number of days, to make it for hours, delete * 24, for minutes, delete * 60 * 24 */
if (expires) expires = expires * 1000 * 60 * 60 * 24;
var expiresDate = new Date( today.getTime() + (expires) );
document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expiresDate.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}
function getCookie(checkName) { // First we'll split this cookie up into name/value pairs // Note: document.cookie only returns name=value, not the other components
var aAllCookies = document.cookie.split(';'); var aTempCookie = ''; var cookieName = ''; var cookieValue = ''; var bCookieFound = false; // Set boolean t/f default f
for (i = 0; i < aAllCookies.length; i++) { // Now we'll split apart each name=value pair aTempCookie = aAllCookies[i].split('='); // And trim left/right whitespace while we're at it cookieName = aTempCookie[0].replace(/^\s+|\s+$/g, ''); // If the extracted name matches passed checkName if (cookieName == checkName) { bCookieFound = true; // We need to handle case where cookie has no value but exists (no = sign, that is): if (aTempCookie.length > 1) cookieValue = unescape(aTempCookie[1].replace(/^\s+|\s+$/g, ''));
// Note that in cases where cookie is initialized but no value, null is returned return cookieValue; break; } aTempCookie = null; cookieName = ''; }
if (!bCookieFound) return null; }
// 0)
{
longDeg = Math.floor(event.latLng.lng());
longMin = (event.latLng.lng() - longDeg) * 100;
}
else
{
longDeg = Math.ceil(event.latLng.lng());
longMin = (longDeg - event.latLng.lng()) * 100;
}
var longMin2 = longMin * 60 / 100;
var longSec = Math.round((longMin2 - Math.floor(longMin2)) * 60);
var latDeg;
var latMin;
if (event.latLng.lat() > 0)
{
latDeg = Math.floor(event.latLng.lat());
latMin = (event.latLng.lat() - latDeg) * 100;
}
else
{
latDeg = Math.ceil(event.latLng.lat());
latMin = (latDeg - event.latLng.lat()) * 100;
}
var latMin2 = latMin * 60 / 100;
var latSec = Math.round((latMin2 - Math.floor(latMin2)) * 60);
var strHtml = "";
strHtml += "Länge : " + Math.round(event.latLng.lng() * 100000) / 100000 + " " + longDir;
strHtml += " (" + longDeg + "° " + Math.floor(longMin2) + "' " + longSec + "'' "+ longDir + ")";
strHtml += "
\n";
strHtml += "Breite : " + Math.round(event.latLng.lat() * 100000) / 100000 + " " + latDir;
strHtml += " (" + latDeg + "° " + Math.floor(latMin2) + "' " + latSec + "'' "+ latDir + ")";
strHtml += "
\n";
/* Long/Lat to QTH locator conversion largely */
/* inspired from the DL4MFM code found here : */
/* http://members.aol.com/mfietz/ham/calcloce.html */
var ychr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var ynum = "0123456789";
var yqth, yi, yk, ydiv, yres, ylp, y;
var y = 0;
var ycalc = new Array(0,0,0);
var yn = new Array(0,0,0,0,0,0,0);
ycalc[1] = event.latLng.lng() + 180;
ycalc[2] = event.latLng.lat() + 90;
for (yi = 1; yi < 3; ++yi) {
for (yk = 1; yk < 4; ++yk) {
if (yk != 3) {
if (yi == 1) {
if (yk == 1) ydiv = 20;
if (yk == 2) ydiv = 2;
}
if (yi == 2) {
if (yk == 1) ydiv = 10;
if (yk == 2) ydiv = 1;
}
yres = ycalc[yi] / ydiv;
ycalc[yi] = yres;
if (ycalc[yi]>0)
ylp = Math.floor(yres)
else
ylp = Math.ceil(yres);
ycalc[yi] = (ycalc[yi] - ylp) * ydiv;
}
else {
if (yi == 1)
ydiv = 12
else
ydiv = 24;
yres = ycalc[yi] * ydiv;
ycalc[yi] = yres;
if (ycalc[yi] > 0)
ylp = Math.floor(yres)
else
ylp = Math.ceil(yres);
}
++y;
yn[y] = ylp;
}
}
yqth = ychr.charAt(yn[1]) + ychr.charAt(yn[4]) + ynum.charAt(yn[2]);
yqth += ynum.charAt(yn[5]) + ychr.charAt(yn[3])+ ychr.charAt(yn[6]);
strCookieBtn = "
\n"; var strCookie; if (strCookie = getCookie("home")) { var aStart = strCookie.split("/"); var start = new google.maps.LatLng(aStart[1], aStart[0]); // var nDistM = point.distanceFrom(start, 6372797); // Use the ellipsoidal quadratic mean (http://en.wikipedia.org/wiki/Talk:Earth/Archive_7#Mean_radius) var nDistM = google.maps.geometry.spherical.computeDistanceBetween(start, eventPos); strHtml += "Entfernung nach "; if (nDistM >= 10000) { var nDistKm = Math.round(nDistM / 1000); var nDistMiles = Math.round(nDistM * 0.621371192 / 1000); strHtml += aStart[2] + " : " + nDistKm + " km"; } else if (nDistM >= 1000) { var nDistKm = Math.round(nDistM / 100) / 10; var nDistMiles = Math.round(nDistM * 0.621371192 / 100) / 10; strHtml += aStart[2] + " : " + nDistKm + " km"; } else strHtml += aStart[2] + " : " + Math.round(nDistM) + " m"; // Azimuth function azimuth(lon1, lat1, lon2, lat2) { // All expressed in decimal degrees - Assume a spherical earth... var lon1Rad = lon1 * Math.PI / 180; var lat1Rad = lat1 * Math.PI / 180; var lon2Rad = lon2 * Math.PI / 180; var lat2Rad = lat2 * Math.PI / 180; var dLon = lon2Rad - lon1Rad; var y = Math.sin(dLon) * Math.cos(lat2Rad); var x = Math.cos(lat1Rad) * Math.sin(lat2Rad) - Math.sin(lat1Rad) * Math.cos(lat2Rad) * Math.cos(dLon); var az = Math.round(Math.atan2(y, x) * 180 / Math.PI); if (az < 0) az += 360; return az; // Az returned in degrees (0 ... 360) } strHtml += "
Azimuth von " + aStart[2] + " : " + azimuth(aStart[0], aStart[1], event.latLng.lng(), event.latLng.lat()) + " Grad\n"; strHtml += "
Azimuth zu " + aStart[2] + " : " + azimuth(event.latLng.lng(), event.latLng.lat(), aStart[0], aStart[1]) + " Grad\n"; strHtml += "
\n"; } strHtml += "
\n"; strHtml += strCookieBtn; strHtml += ""; polyline.setMap(null); // map.openInfoWindowHtml(point, strHtml); // Square limits var bottomLeftLong = Math.floor(event.latLng.lng() / 0.0833333333) * 0.0833333333; var bottomLeftLat = Math.floor(event.latLng.lat() / 0.0416666666) * 0.0416666666; var polylinesquare = [ new google.maps.LatLng(bottomLeftLat, bottomLeftLong), new google.maps.LatLng(bottomLeftLat, bottomLeftLong + 0.0833333333), new google.maps.LatLng(bottomLeftLat + 0.0416666666, bottomLeftLong + 0.0833333333), new google.maps.LatLng(bottomLeftLat + 0.0416666666, bottomLeftLong), new google.maps.LatLng(bottomLeftLat, bottomLeftLong) ]; polyline = new google.maps.Polyline({ path: polylinesquare, geodesic: true, strokeColor: '#0000FF', strokeOpacity: 0.5, strokeWeight: 6 }); polyline.setMap(map); if (infowindow) { infowindow.close(); } infowindow = new google.maps.InfoWindow({ content: strHtml }); infowindow.setPosition(event.latLng); infowindow.open(map); window.setTimeout(function() { // map.panTo(polyline.getPath().getArray().toString()); // map.setCenter(polyline.getBounds().getCenter()); }, 1000); }); // Listener } // Initialize point google.maps.event.addDomListener(window, 'load', initialize);
Konvertiert IARU Locator in Längen- und Breitengrad
Einfach den 6-stelligen Locator-Code eingeben und auf "Berechnen" klicken.
Der Standort kann in einer Karte angezeigt werden, dazu "Karte global" oder "Karte lokal" anklicken.
| Breite: | ° | Länge: | ° | |||
| ° | ‚ | ° | ‚ | |||
Locatorberechnung nach IARU:
|
Breite: |
° ‚ " |
Nord |
Länge: |
° ‚ " |
West |
|
Grad, Minuten und Sekunden in
die vorgegebenen Feldern eingeben oder als Dezimalzahl mit ‚.‚ als Komma im Grad-Feld eingeben, Minuten- und Sekunden-Feld dann freilassen. |
|
| Locator: | |
|
Suche nach Rufzeichen (APRS): (mit SSID): |
Suche nach Koordinaten von Orten:
www.stadt-daten.de oder www.regio-net-dl.de
In die Datenbank einfach Ort
eingeben und Suche starten.
Die Koordinaten werden dann in Dezimalgrad und in Grad, Minuten und Sekunden
oder direkt als Locator angegeben (bei Regio-Net-DL).