Changeset 13156

Show
Ignore:
Timestamp:
10/29/07 17:06:22 (1 year ago)
Author:
bergie
Message:

Now map editing works also with OpenLayers/OpenStreetMap?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midcom/midcom.helper.datamanager2/static/position/widget.js

    r12890 r13156  
    7575        var lon = jQuery('#' + input_data['longitude']['id']).attr('value'); 
    7676         
    77         new_position(new LatLonPoint(lat,lon)); 
     77        new_position(new LatLonPoint(parseFloat(lat), parseFloat(lon))); 
    7878         
    7979        revgeodata_btn.hide(); 
     
    114114    function new_position(point) 
    115115    { 
    116         current_pos = point; 
    117          
     116        switch (mapstraction.api) 
     117        { 
     118            case 'openlayers': 
     119                var lonlat = mapstraction.maps['openlayers'].getLonLatFromViewPortPx(point.xy); 
     120                var latlon = new LatLonPoint(lonlat.lat, lonlat.lon); 
     121                latlon.fromOpenLayers(); 
     122                current_pos = latlon; 
     123                break; 
     124            default: 
     125                current_pos = point; 
     126                break; 
     127        } 
    118128        jQuery('#' + input_data['latitude']['id']).attr('value', current_pos.lat); 
    119129        jQuery('#' + input_data['longitude']['id']).attr('value', current_pos.lon); 
    120          
    121130        set_marker('Current position', ''); 
    122131        get_reversed_geodata(); 
     
    287296        update_widget_inputs(location_data); 
    288297 
    289         current_pos = new LatLonPoint(location_data['latitude'],location_data['longitude']); 
     298        current_pos = new LatLonPoint(parseFloat(location_data['latitude']), parseFloat(location_data['longitude'])); 
    290299 
    291300        var info = location_data['city'] + ", " + location_data['country'] + ", " + location_data['postalcode']; 
     
    348357        for (var i=1; i<total; i++) 
    349358        {                
    350             var point = new LatLonPoint(items[i]['latitude'],items[i]['longitude']); 
     359            var point = new LatLonPoint(parseFloat(items[i]['latitude']), parseFloat(items[i]['longitude'])); 
    351360            var info = items[i]['city'] + ", " + items[i]['country'] + ", " + items[i]['postalcode']; 
    352361            set_alternative_marker('Alternative position', info, point); 
  • trunk/midcom/midcom.helper.datamanager2/widget/position.php

    r13151 r13156  
    319319        $html .= "\n</div>\n"; 
    320320         
    321         $orp_map = new org_routamc_positioning_map("{$this->_element_id}_map", 'google'); 
     321        $orp_map = new org_routamc_positioning_map("{$this->_element_id}_map"/*, 'google'*/); 
    322322        $html .= $orp_map->show(420,300,false); 
    323323 
  • trunk/midcom/org.routamc.positioning/static/mapstraction.js

    r13151 r13156  
    613613  listener.push(type); 
    614614  this.eventListeners.push(listener); 
     615 
     616  switch (this.api) { 
     617    case 'openlayers': 
     618        this.maps[this.api].events.register(type, this, func); 
     619        break; 
     620  } 
    615621} 
    616622 
     
    23892395   var ollat = Math.log(Math.tan((90 + this.lat) * Math.PI / 360)) / (Math.PI / 180); 
    23902396   ollat = ollat * 20037508.34 / 180; 
    2391  
     2397   //console.log("COORD: " + this.lat + ', ' + this.lon + " OL: " + ollat + ', ' +ollon); 
    23922398   return new OpenLayers.LonLat(ollon, ollat); 
     2399} 
     2400 
     2401/** 
     2402 * fromOpenLayers converts an OpenLayers point to Mapstraction LatLonPoint 
     2403 * Does a conversion from projectect coordinates to Latitude/Longitude 
     2404 * @returns a LatLonPoint 
     2405 */ 
     2406LatLonPoint.prototype.fromOpenLayers = function() { 
     2407   var lon = (this.lon / 20037508.34) * 180; 
     2408   var lat = (this.lat / 20037508.34) * 180; 
     2409 
     2410   lat = 180/Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2); 
     2411 
     2412   this.lon = lon; 
     2413   this.lat = lat; 
    23932414} 
    23942415/**