////
//
// main markers
var _main_markers = new Array(); // {obj:,gid:,nid:,title:}
//var _main_markers_id = new Array();
//var _main_markers_title = new Array();
var _main_markers_limit = 10;
// main infowindows
var _main_iwins = new Array(); // {obj:,time:}
var _main_iwins_limit = 1;
// main marker
var _mainmarker;
// sub markers
var _markers = new Array(); // {obj:,gid:,nid:,title:}
//var _markers_title = new Array();
// add markers
var _addmarkers = new Array();
var _addmarker_num;
var _addmarker_limit = 1;
var _idmap = 'map';
var _map;
var _map_vision;
var _marker;
var _control;
var _overview;
var _viewmode;
var _min_x;
var _max_x;
var _min_y;
var _max_y;
var _modname;
var _kid;
var _admin;
var _linkoff;
var _winoff;
var _onnumber;
var _onmlistbox = false;
var _onslistbox = false;
var _listbox_incomp = 0;
var _onnumber = 0;
var _polyline;
var _polylines;
var _polyline_color;
var _polyline_weight;
var _polyline_opacity;
var _autozoom = true;
var _listboxafter_fnc;
var _tailesloaded_fnc;
var _active_tabmode;
if( typeof(_points_areamap) == 'undefined' ){
var _points_areamap = [];
}
function event_handler_map(){
_map = new MapAdmin();
setGmapDefault();
_map.createMap(_idmap);
_map.clearMarker();
if( typeof(_map.default_opt) != 'undefined' ){
if( _map.default_opt != '' ){
var mat = new Material();
var xml = mat.readMaterialAsync(_map.default_opt);
var tree = parseXML4Material(xml);
if( typeof(tree) != 'undefined' && typeof(tree.material) != 'undefined' ){
material = tree.material;
if( typeof(material.lng) != 'undefined' && typeof(material.lat) != 'undefined' ){
_map.createMainMarker(new google.maps.LatLng(material.lat,material.lng), material.modname, material.gid, material.nid, '', material.marker);
_map.map.setCenter(new google.maps.LatLng(material.lat,material.lng));
}
}
}
}
if( typeof(_marker) != 'undefined' ){
putMapMarker4Xml_Main(_marker);
}
var mapobj = _map.getMapObj();
if( typeof(_min_x) != 'undefined' && typeof(_max_x) != 'undefined' && typeof(_min_y) != 'undefined' && typeof(_max_y) != 'undefined' ){
calcuBound2Zoom(_min_x, _max_x, _min_y, _max_y);
}
if( _viewmode == 'mapset' ){
_addmarker_num = 0;
if( _admin == '' ){_addmarker_limit = 1;}
jQuery('#'+_idmap+'_operation').html(' ');
}
google.maps.event.addListenerOnce(mapobj, 'tilesloaded', function(){
if( _viewmode == 'msoround' && typeof(_modname) != 'undefined' ){
soroundSearch(_modname);
} else if( _viewmode == 'soround' && typeof(_modname) != 'undefined' ){
soroundSearch(_modname);
} else if( _viewmode == 'ksearch' && typeof(_modname) != 'undefined' ){
kategorieSearch(_kid);
}
if( typeof(_polyline) != 'undefined' && _polyline == 'on' ){
setPolyline();
}
if( _viewmode == 'mapset' ){
_map.addMarker(new google.maps.LatLng(_map.getDefaultLat(), _map.getDefaultLng()));
}
if( _dirn_defpoints != '' ){
event_handler_direction();
directionSetAndStart(_dirn_defpoints);
}
if( typeof(_tailesloaded_fnc) != 'undefined' ){
_tailesloaded_fnc();
}
});
}
function setPolyline(){
if( typeof(_polylines) != 'undefined' ){
var tree = parseXML4SummaryMaterial(_polylines);
var max = _polylines.length;
var points=[];
for( i=0; i= id_max ){return;}
_map.clearMarker_Main(num);
refreshListBox();
}
function putMapMarkerNonNumber(xml, marker_color){
var tree = parseXML4SummaryMaterial(xml);
var max = _markers.length;
if( tree == null || ! tree.material.length ){return;}
material = tree.material;
_map.createMarker2(new google.maps.LatLng(material.lat,material.lng), material.modname, material.gid, material.nid, max, marker_color);
//_map.createMarker(new google.maps.LatLng(material.lat,material.lng), material.name, marker_color, '*');
_map.map.setCenter(new google.maps.LatLng(material.lat,material.lng));
}
function putMapMarker(xml, marker_color){
var tree = parseXML4Material(xml);
var max = _markers.length;
if( tree == null || ! tree.summary.material.length ){return;}
material = tree.material;
_map.createMarker2(new google.maps.LatLng(material.lat,material.lng), material.tid, max);
}
function putMapMarker_Main(xml, marker_color){
var tree = parseXML4Material(xml);
var max = _main_markers.length;
var id_max = _main_markers.length;
var bingofl = false;
var count = 0;
for( i=0; i 0 ){count++;}
}
if( count >= _main_markers_limit ){return;}
if( tree == null || ! tree.summary.material.length ){return;}
material = tree.material;
// check Duplicate
for( i=0; i'+material.title+'', material.marker, i+1);
}
if( _onslistbox == true ){
tit = material.title.substr(0,_map.listbox_maxlength);
if( _onnumber == 1 ){num = i+1;tit = num+'.'+tit;}
if( _listbox_incomp == 0 ){
_map.pushListBox(makeLinkForm(i, tit));
} else {
_map.pushListBox(makeLinkFormInComp(i, tit, material.comment));
}
_markers[i].title = material.title;
}
//marker += '';
//marker += tree.summary.material[i].name;
//marker += '
';
}
}
}
bounds_lng.sort();
bounds_lat.sort();
calcuBound2Zoom(bounds_lng[0], bounds_lng[bounds_lng.length-1], bounds_lat[0], bounds_lat[bounds_lat.length-1]);
if( typeof(_polyline) != 'undefined' && _polyline == 'mainmarker' ){
_map.map.addOverlay(new google.maps.Polyline(points, _polyline_color, _polyline_weight, _polyline_opacity));
}
if( _onslistbox == true && typeof(_listboxafter_fnc) != 'undefined' ){
_listboxafter_fnc();
}
}
function putMapMarker4Xml_Main(xml, inhtml){
var tree = parseXML4SummaryMaterial(xml);
var marker = '';
var bounds_lng = new Array();
var bounds_lat = new Array();
var bounds_pos = 0;
var tit;
var num;
if( tree == null || ! tree.summary.material.length ){return;}
//_map.clearMarker_Main();
var material;
var mat = new Material();
var width = _map.getSmallWinWidth();
var height = _map.getSmallWinHeight();
var max = _main_markers.length;
var points=[];
_main_markers = [];
for( i=max; i'+material.title+'', '', i+1, material.marker);
}
//marker += '';
//marker += tree.summary.material[i].name;
//marker += '
';
}
}
}
bounds_lng.sort();
bounds_lat.sort();
calcuBound2Zoom(bounds_lng[0], bounds_lng[bounds_lng.length-1], bounds_lat[0], bounds_lat[bounds_lat.length-1]);
if( typeof(_polyline) != 'undefined' && _polyline == 'mainmarker' ){
_map.map.addOverlay(new google.maps.Polyline(points, _polyline_color, _polyline_weight, _polyline_opacity));
}
if( _onslistbox == true && typeof(_listboxafter_fnc) != 'undefined' ){
_listboxafter_fnc();
}
}
function putKategorieCount4Xml(xml){
var tree = parseXML4SummaryKategorie(xml);
jQuery('#map_kategorie').html('');
if( tree == null || ! tree.summary.material.length ){return;}
var kategorie;
var html = '';
for( i=0; i';
html += kategorie.name;
html += '(';
html += kategorie.count;
html += ')';
html += '';
}
}
if( html != '' ){
jQuery('#map_kategorie').html(html);
}
}
function showAddress(address){
if( typeof(_map.geocoder) != 'undefined' ){
_map.geocoder.geocode(
{
address: address
},
moveAddress
);
}
}
function moveAddress(res, stat){
if( typeof(res[0]) != 'undefined' && typeof(res[0].geometry) != 'undefined' ){
_map.map.setCenter(res[0].geometry.location);
_map.addMarker(_map.getMapObj().getCenter());
} else {
alert('No match')
}
}
function showMarkers4nID( mode, ms ){
if( typeof(ms) == 'undefined' || ! ms.length ){return;}
var bounds_lng = [];
var bounds_lat = [];
//if( mode != _active_tabmode ){hideMarkerAll();}
for( var i=0; i 0 ){
_addmarkers[_addmarker_num-1].setMap(null);
_addmarkers = new Array();
_addmarker_num = 0;
}
if( typeof(_addmarker_limit) == 'undefined' || _addmarker_num < _addmarker_limit ){
//var marker = new google.maps.Marker(point, {draggable: true});
var marker = new google.maps.Marker({
map: this.map,
animation: google.maps.Animation.DROP,
position: point,
draggable: true
});
google.maps.event.clearListeners(marker, 'click');
google.maps.event.clearListeners(marker, 'infowindowopen');
google.maps.event.clearListeners(marker, 'dragend');
google.maps.event.addListener(marker, 'dragend', function(){
_map.setFormPointXY(marker.getPosition());
});
_map.setFormPointXY(marker.getPosition());
_addmarkers[_addmarker_num] = marker;
_addmarker_num++;
return marker;
}
},
//
// infoWindow open processor
//
infoWindowOpen : function(iwin, map, marker){
var pos = 0;
if( _main_iwins.length < _main_iwins_limit ){
pos = _main_iwins.length;
} else {
for( var i=0; i<_main_iwins.length; i++ ){
if( _main_iwins[i].time < _main_iwins[pos].time ){
pos = i;
}
}
}
if( typeof(_main_iwins[pos]) != 'undefined' ){
_main_iwins[pos].obj.close();
}
_main_iwins[pos] = {
obj: iwin,
time: new Date().getTime()
};
_main_iwins[pos].obj.open(map, marker);
marker.setAnimation(google.maps.Animation.BOUNCE);
google.maps.event.addListenerOnce(_main_iwins[pos].obj, 'position_changed', function(){
marker.setAnimation(null);
});
},
//
// Set Formvalue as point X,Y
// has a rename form ID
//
//
setFormPointXY : function(point){
jQuery('#gmap_lng').val(point.lng());
jQuery('#gmap_lat').val(point.lat());
},
//
// savepoint
//
//
savePosition : function(){
this.savelocation = this.map.getCenter();
},
//
// move savepoint
//
//
panToSavePosition : function(){
if( typeof(this.savelocation) != 'undefined' ){
this.map.setCenter(this.savelocation);
}
},
//
//
//
//
putMessageBox : function(mess){
box_id = '#'+this.messbox_id;
if( eval('typeof(document.getElementById(\''+box_id+'\'));') == 'undefined' ){return;}
jQuery(box_id).html(mess);
},
//
//
//
//
pushListBox : function(mess){
box_id = '#'+this.listbox_id;
if( jQuery(box_id) == null ){return;}
jQuery(box_id).html(jQuery(box_id).html()+''+mess+'
');
},
//
//
//
//
clearListBox : function(){
if( this.listbox_unclear ){return;}
box_id = '#'+this.listbox_id;
if( jQuery(box_id) == null ){return;}
jQuery(box_id).html('');
}
});