[bknr-cvs] hans changed trunk/projects/bos/
BKNR Commits
bknr at bknr.net
Fri Dec 5 13:37:32 UTC 2008
Revision: 4116
Author: hans
URL: http://bknr.net/trac/changeset/4116
placemark for contract
U trunk/projects/bos/m2/m2.lisp
U trunk/projects/bos/payment-website/static/poi-ms.js
Modified: trunk/projects/bos/m2/m2.lisp
===================================================================
--- trunk/projects/bos/m2/m2.lisp 2008-12-05 12:08:08 UTC (rev 4115)
+++ trunk/projects/bos/m2/m2.lisp 2008-12-05 13:37:32 UTC (rev 4116)
@@ -700,13 +700,16 @@
(defmethod json:encode-slots progn ((contract contract))
(destructuring-bind (left top width height) (contract-bounding-box contract)
- (json:encode-object-elements
- "timestamp" (format-date-time (contract-date contract) :mail-style t)
- "count" (length (contract-m2s contract))
- "top" top
- "left" left
- "width" width
- "height" height)))
+ (destructuring-bind (center-x center-y) (contract-center contract)
+ (json:encode-object-elements
+ "timestamp" (format-date-time (contract-date contract) :mail-style t)
+ "count" (length (contract-m2s contract))
+ "top" top
+ "left" left
+ "width" width
+ "height" height
+ "centerX" center-x
+ "centerY" center-y))))
(defmethod json:encode-slots progn ((sponsor sponsor))
(json:encode-object-elements
Modified: trunk/projects/bos/payment-website/static/poi-ms.js
===================================================================
--- trunk/projects/bos/payment-website/static/poi-ms.js 2008-12-05 12:08:08 UTC (rev 4115)
+++ trunk/projects/bos/payment-website/static/poi-ms.js 2008-12-05 13:37:32 UTC (rev 4116)
@@ -151,7 +151,6 @@
}, poi.media);
mainMap.hide();
-// mainMap.zoomTo(poi.x, poi.y);
}
function pointToPath(point, level) {
@@ -180,26 +179,35 @@
function Map() {
this.map = new GMap2($('#map')[0]);
- var copyright
- = new GCopyright(1,
- new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)),
- 3,
- "Copyright BOS Deutschland e.V.");
var copyrightCollection = new GCopyrightCollection('Map');
- copyrightCollection.addCopyright(copyright);
- var tileLayers = [new GTileLayer(copyrightCollection, 0, 12)];
- var projection = new GMercatorProjection(12);
- tileLayers[0].getTileUrl = function(point, level) {
- if (level < 15) {
- var path = pointToPath(point, level);
- log('getTileUrl: x:' + point.x + ' y:' + point.y + ' level:' + level + ' path: ' + path);
- return '/simple-map/contracts?path=' + path;
- } else {
- return null;
+ copyrightCollection.addCopyright(new GCopyright(1,
+ new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)),
+ 3,
+ "Copyright BOS Deutschland e.V."));
+
+ this.layers = {};
+
+ this.makeLayer = function (name) {
+ var tileLayer = new GTileLayer(copyrightCollection, 0, 12);
+ tileLayer.getTileUrl = function(point, level) {
+ if (level < 15) {
+ var path = pointToPath(point, level);
+// log('getTileUrl: x:' + point.x + ' y:' + point.y + ' level:' + level + ' path: ' + path);
+ return '/simple-map/' + name + '?path=' + path;
+ } else {
+ return null;
+ }
}
+ this.layers[name] = tileLayer;
+ return tileLayer;
}
- var customMap = new GMapType(tileLayers, projection, 'Map', { errorMessage: NLS("Keine Daten in dieser Zoomstufe") });
+ var projection = new GMercatorProjection(12);
+ var customMap = new GMapType(
+ [ this.makeLayer('sat-2002'),
+ this.makeLayer('contracts') ],
+ projection, 'Map', { errorMessage: NLS("Keine Daten in dieser Zoomstufe") });
+
this.map.addMapType(customMap);
this.controls = [ new GLargeMapControl() ];
@@ -218,6 +226,17 @@
this.map.enableContinuousZoom();
this.map.enableScrollWheelZoom();
+ this.mapClicked = function (overlay, latlng, overlaylatlng) {
+ log('map clicked, overlay: ' + overlay + ' latlng: ' + latlng + ' overlaylatlng: ' + overlaylatlng);
+ }
+
+ this.moveEnd = function () {
+ log('map has moved');
+ }
+
+ GEvent.addListener(this.map, "click", bind(this.mapClicked, this));
+ GEvent.addListener(this.map, "moveend", bind(this.moveEnd, this));
+
this.overview = function () {
this.show();
$('#map').removeClass('small');
@@ -227,7 +246,7 @@
this.map.checkResize();
}
- this.zoomTo = function (x, y) {
+ this.poiDetail = function (x, y) {
$('#map').removeClass('large');
$('#map').addClass('small');
this.removeControls();
@@ -235,6 +254,10 @@
this.map.checkResize();
}
+ this.zoomTo = function (x, y, level) {
+ this.map.setCenter(projection.fromPixelToLatLng(new GPoint(x, y), 6), level);
+ }
+
this.hide = function () {
$('#map').css('display', 'none');
}
@@ -254,10 +277,21 @@
GEvent.addListener(marker, "click", partial(showPOI, pois[i]));
this.map.addOverlay(marker);
}
+
+ this.setSponsorMarker = function (sponsor) {
+ var position = pointToLatLng(sponsor.contracts[0].centerX, sponsor.contracts[0].centerY);
+ if (this.sponsorMarker) {
+ this.sponsorMarker.setLatLng(position);
+ } else {
+ this.sponsorMarker = new GMarker(position);
+ this.map.addOverlay(this.sponsorMarker);
+ }
+ }
}
var pages = {
overview: showOverview,
+ sponsors: showSponsors
}
function selectPage(e) {
@@ -276,6 +310,11 @@
$('#content-body')
.empty()
.append(H2(null, sponsor.name));
+
+ mainMap.zoomTo(contract.left, contract.top, 8);
+ mainMap.setSponsorMarker(sponsor);
+
+ // Math.max(contract.width, contract.height)
}
function showSponsors() {
@@ -296,6 +335,8 @@
" ", sponsor.contracts[0].count, " m²")))
.bind('click', sponsor, showSponsor));
}, sponsors.slice(0, 10));
+
+ mainMap.overview();
}
function loadSponsors(data) {
More information about the Bknr-cvs
mailing list