Mercurial > hg > batmud > gmap2
changeset 129:d573bb2d9e9f gmap2
Various cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 09 Mar 2014 13:03:00 +0200 |
parents | 37c4d1f16258 |
children | a2dab3b3d8e6 |
files | map.js markers.js |
diffstat | 2 files changed, 91 insertions(+), 76 deletions(-) [+] |
line wrap: on
line diff
--- a/map.js Sun Mar 09 12:53:03 2014 +0200 +++ b/map.js Sun Mar 09 13:03:00 2014 +0200 @@ -1,10 +1,4 @@ // $Id: map.js 2404 2009-12-24 20:01:32Z jeskko $ -var markertypes = [ - ["Guilds", "guild"], - ["PCities", "pcity"], - ["Shrines", "shrine"], - ["Areas", "default"], -]; var map = new GMap2(document.getElementById("map"),{draggableCursor: 'crosshair', draggingCursor: 'pointer'}); map.enableContinuousZoom();
--- a/markers.js Sun Mar 09 12:53:03 2014 +0200 +++ b/markers.js Sun Mar 09 13:03:00 2014 +0200 @@ -1,50 +1,67 @@ // $Id: markers.js 2284 2009-09-21 12:47:20Z jeskko $ -var mgr = new GMarkerManager(map); -var areas = []; -var tlane = []; -var gmarkers = []; -var mi = 0; -var bi = 0; -var builtin_data = []; -var side_builtin_html = ""; +// +// List of marker types +// +var pmap_markertypes = +[ + ["Guilds", "guild"], + ["PCities", "pcity"], + ["Shrines", "shrine"], + ["Areas", "default"], +]; -function myclick(i) + +var mgr = new GMarkerManager(map); +var pmap_areas = []; +var pmap_markers = []; +var pmap_mindex = 0; +var pmap_bindex = 0; +var pmap_builtin = []; +var pmap_side_builtin_html = ""; + + +function pmapMyClick(i) { - b = gmarkers[i]; - map.panTo(b); + map.panTo(pmap_markers[i]); } -function createMarker(point,name,html,icon,type,continent,sidebar) +function pmapCreateMarker(point,name,html,icon,type,continent,sidebar) { var marker = new GMarker(point, {icon:icon}); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("<div style=\"color:#000;\">"+html+"</div>"); }); - gmarkers[mi] = point; + + pmap_markers[pmap_mindex] = point; + if (sidebar == "builtin") { - builtin_data[bi] = new Array(2); - builtin_data[bi][0] = type; - builtin_data[bi][1] = continent; - side_builtin_html += '<div class="'+continent+'" id="marker'+bi+'"><a href="javascript:myclick(' + mi + ')">' + name + '</a></div>'; - bi++; + pmap_builtin[pmap_bindex] = new Array(2); + pmap_builtin[pmap_bindex][0] = type; + pmap_builtin[pmap_bindex][1] = continent; + pmap_side_builtin_html += '<div class="'+continent+'" id="marker'+pmap_bindex+'"><a href="javascript:pmapMyClick('+ pmap_mindex +')">' + name + '</a></div>'; + pmap_bindex++; } - if (sidebar == "private") side_private_html += '<a href="javascript:myclick(' + mi + ')">' + name + '</a><br>'; - if (sidebar == "public") side_public_html += '<a href="javascript:myclick(' + mi + ')">' + name + '</a><br>'; + if (sidebar == "private") side_private_html += '<a href="javascript:pmapMyClick(' + pmap_mindex + ')">' + name + '</a><br>'; + if (sidebar == "public") side_public_html += '<a href="javascript:pmapMyClick(' + pmap_mindex + ')">' + name + '</a><br>'; - mi++; + pmap_mindex++; return marker; } +// +// Parse markers from XML +// GDownloadUrl("markers.xml", function(data,responseCode) { var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); + pmap_side_builtin_html = ""; for (var nid = 0; nid < markers.length; nid++) { @@ -57,26 +74,28 @@ if (name.indexOf('FERRY') == 0) type = "ferry"; var continent = markers[nid].getAttribute("continent"); var p = proj.fromPixelToLatLng(new GPoint(x*2+1,y*2+1),7); - var marker = createMarker(p, name, html, icons[type], type, continent, "builtin"); - if (areas[type] == undefined) areas[type] = []; - areas[type].push(marker); + var marker = pmapCreateMarker(p, name, html, icons[type], type, continent, "builtin"); + if (pmap_areas[type] == undefined) pmap_areas[type] = []; + pmap_areas[type].push(marker); } - mgr.addMarkers(areas["default"], 7, 11); - mgr.addMarkers(areas["guild"], 6, 11); - mgr.addMarkers(areas["shrine"], 7, 11); - mgr.addMarkers(areas["ferry"], 4, 11); - mgr.addMarkers(areas["city"], 4, 11); + mgr.addMarkers(pmap_areas["default"], 7, 11); + mgr.addMarkers(pmap_areas["guild"], 6, 11); + mgr.addMarkers(pmap_areas["shrine"], 7, 11); + mgr.addMarkers(pmap_areas["ferry"], 4, 11); + mgr.addMarkers(pmap_areas["city"], 4, 11); - mgr.addMarkers(areas["pcity"], 8, 11); - mgr.addMarkers(areas["fort"], 8, 11); + mgr.addMarkers(pmap_areas["pcity"], 8, 11); + mgr.addMarkers(pmap_areas["fort"], 8, 11); mgr.refresh(); - document.getElementById("sidecontent").innerHTML = side_builtin_html; + document.getElementById("sidecontent").innerHTML = pmap_side_builtin_html; }); -// Create tradelane markers +// +// Parse tradelane markers from another XML +// GDownloadUrl("tradelane.xml", function(data,responseCode) { var xml = GXml.parse(data); @@ -92,17 +111,19 @@ if (type == "") type = "default"; var continent = markers[id].getAttribute("continent"); var p = proj.fromPixelToLatLng(new GPoint(x*2+1,y*2+1),7); - var marker = createMarker(p, name, html, icons[type], type, continent, "tradelane"); - if (areas[type] == undefined) areas[type] = []; - areas[type].push(marker); + var marker = pmapCreateMarker(p, name, html, icons[type], type, continent, "tradelane"); + if (pmap_areas[type] == undefined) pmap_areas[type] = []; + pmap_areas[type].push(marker); } - mgr.addMarkers(areas["tradelane"], 5, 11); + mgr.addMarkers(pmap_areas["tradelane"], 5, 11); mgr.refresh(); }); +// // Create GMap polylines from tradelane line data +// GDownloadUrl("troverlay.xml", function(data,responseCode) { // Parse fetched XML @@ -130,59 +151,59 @@ }); -/* - * Menu code - */ +// +// Menu code +// var markerVisStates = []; -function setVisState(c, show) +function pmapSetVisState(c, show) { markerVisStates[c] = show; document.getElementById("sp" + c).style.background = show ? "white" : "red"; } -function updateVisible() +function pmapUpdateVisible() { - for (var i = 0; i < builtin_data.length; i++) + for (var i = 0; i < pmap_builtin.length; i++) { - var show = markerVisStates[builtin_data[i][0]] && markerVisStates[builtin_data[i][1]]; + var show = markerVisStates[pmap_builtin[i][0]] && markerVisStates[pmap_builtin[i][1]]; document.getElementById("marker" + i).style.display = show ? "block" : "none"; } } -function setVisContinent(c, show) +function pmapSetVisContinent(c, show) { - setVisState(c, show); + pmapSetVisState(c, show); if (c == "all_c") { for (var i = 0; i < continents.length; i++) { var q = continents[i]; if (q != null) - setVisState(q[0], show); + pmapSetVisState(q[0], show); } } } -function setVisType(c, show) +function pmapSetVisType(c, show) { - setVisState(c, show); + pmapSetVisState(c, show); if (c == "all_t") { - for (var i = 0; i < markertypes.length; i++) + for (var i = 0; i < pmap_markertypes.length; i++) { - var q = markertypes[i]; + var q = pmap_markertypes[i]; if (q != null) - setVisState(q[1], show); + pmapSetVisState(q[1], show); } } } -function toggleVisContinent(c) +function pmapToggleVisContinent(c) { var first = false; @@ -192,30 +213,30 @@ { var q = continents[i]; if (q != null) - if (markerVisStates[builtin_data[i][0]]) + if (markerVisStates[pmap_builtin[i][0]]) first = true; } if (first) { - setVisContinent("all_c", false); - setVisContinent(c, true); + pmapSetVisContinent("all_c", false); + pmapSetVisContinent(c, true); } } if (!first) { - setVisContinent(c, !markerVisStates[c]); + pmapSetVisContinent(c, !markerVisStates[c]); } - updateVisible(); + pmapUpdateVisible(); } -function toggleVisType(c) +function pmapToggleVisType(c) { - setVisType(c, !markerVisStates[c]); - updateVisible(); + pmapSetVisType(c, !markerVisStates[c]); + pmapUpdateVisible(); } @@ -228,33 +249,33 @@ if (q != null) { var c = q[0]; - str += "<span id=\"sp"+c+"\"><a href=\"javascript:toggleVisContinent('"+c+"')\">"+c+"</a></span>\n"; + str += "<span id=\"sp"+c+"\"><a href=\"javascript:pmapToggleVisContinent('"+c+"')\">"+c+"</a></span>\n"; if (n == 2) str += "<br />\n"; n++; } } -str += "<span id=\"spall_c\"><a href=\"javascript:toggleVisContinent('all_c')\">All</a></span>\n"; +str += "<span id=\"spall_c\"><a href=\"javascript:pmapToggleVisContinent('all_c')\">All</a></span>\n"; str += "<br /><br />\n"; n = 0; -for (var i = 0; i < markertypes.length; i++) +for (var i = 0; i < pmap_markertypes.length; i++) { - var q = markertypes[i]; + var q = pmap_markertypes[i]; if (q != null) { var c = q[1]; - str += "<span id=\"sp"+c+"\"><a href=\"javascript:toggleVisType('"+c+"')\">"+markertypes[i][0]+"</a></span>\n"; + str += "<span id=\"sp"+c+"\"><a href=\"javascript:pmapToggleVisType('"+c+"')\">"+pmap_markertypes[i][0]+"</a></span>\n"; if (n == 2) str += "<br />\n"; n++; } } -str += "<span id=\"spall_t\"><a href=\"javascript:toggleVisType('all_t')\">All</a></span>\n"; +str += "<span id=\"spall_t\"><a href=\"javascript:pmapToggleVisType('all_t')\">All</a></span>\n"; document.getElementById("controls").innerHTML = str; -setVisContinent("all_c", true); -setVisType("all_t", true); -updateVisible(); +pmapSetVisContinent("all_c", true); +pmapSetVisType("all_t", true); +pmapUpdateVisible();