////
//
function event_handler_map(){
_map = new SobaMap();
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 putMapMarker4Xml(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();
var material;
var mat = new Material();
var width = _map.getSmallWinWidth();
var height = _map.getSmallWinHeight();
var points=[];
_markers = [];
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;}
var img_url_c = '';
if( material.img_url != '' ){
img_url_c = '';
}
if( _listbox_incomp == 0 ){
_map.pushListBox(makeLinkForm(i, ''+img_url_c+''+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();
}
}
/*--------------------------------------------------------------------------*/
var SobaMap = Class.create(MapAdmin,{
//
// Create Map.Override
//
createMap : function(idmap){
if( typeof(idmap) == 'undefined' ){idmap = 'map';}
var map = new google.maps.Map(document.getElementById(idmap));
var geocoder = new google.maps.Geocoder();
var point = new google.maps.LatLng(this.default_lat, this.default_lng);
this.map = map;
this.geocoder = geocoder;
if( typeof(_control) != 'undefined' ){
if( _control == 'small' ){
this.map.setOptions({
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions:{
position: google.maps.ControlPosition.BOTTOM_RIGHT,
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
panControl: false,
rotateControl: false,
scaleControl: true,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_LEFT
},
streetViewControl: false,
zoomControl: true,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_BOTTOM,
style: google.maps.ZoomControlStyle.SMALL
}
});
} else if( _control == 'large' || _control == 'physical' ){
this.map.setOptions({
mapTypeControl: true,
mapTypeControlOptions: {
position: google.maps.ControlPosition.BOTTOM_RIGHT,
style: google.maps.MapTypeControlStyle.DEFAULT
},
panControl: false,
rotateControl: false,
scaleControl: true,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_LEFT
},
streetViewControl: false,
zoomControl: true,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_BOTTOM,
style: google.maps.ZoomControlStyle.DEFAULT
}
});
if( _control == 'physical' ){
this.map.setOptions({
mapTypeId: google.maps.MapTypeId.TERRAIN
});
} else {
this.map.setOptions({
mapTypeId: google.maps.MapTypeId.ROADMAP
});
}
}
} else {
this.map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
}
if( typeof(_overview) != 'undefined' ){
if( _overview == 'on' ){
this.map.setOptions({
overviewMapControl: true,
overviewMapControlOptions: {
opened: true
}
});
}
}
this.map.setCenter(point);
this.map.setZoom(this.default_zoom);
},
//
// Create Marker(Click for DBaccess).Override
//
createMarker2 : function(point, modname, gid, nid, marker_num, marker_color_i, marker_str, mainmarkers){
var num = '';
var opt = '';
var icon = new google.maps.MarkerImage();
var shadow = new google.maps.MarkerImage();
var marker;
var markeropt;
var marker_infos;
var marker_color = '';
var marker_width = 0;
var marker_height = 0;
var infowin_opts;
if( typeof(marker_color_i) != 'undefined' ){
marker_infos = marker_color_i.split(',');
if( typeof(marker_infos[0]) != 'undefined' ){marker_color = marker_infos[0];}
if( typeof(marker_infos[1]) != 'undefined' ){marker_width = marker_infos[1];}
if( typeof(marker_infos[2]) != 'undefined' ){marker_height = marker_infos[2];}
}
//if( typeof(modname) == 'undefined' || (typeof(gid) == 'undefined' && typeof(nid) == 'undefined') ){return;}
//if( typeof(marker_str) == 'undefined' ){num = marker_num+1;} else {num = marker_str;}
if( typeof(marker_str) == 'undefined' ){num = marker_num+1;} else {num = marker_str;}
if( marker_color == '' ){marker_color = '086';}
if( ! marker_width ){marker_width = 17;}
if( ! marker_height ){marker_height = 23;}
if( _onnumber == 1 ){
icon.url = 'http://ingnet.jp/modules/sobakaido/include/markers/numbered_marker.php?image=pushpins/webhues/';
icon.url += marker_color+'.png&text=';
icon.url += num;
} else {
icon.url = 'http://ingnet.jp/modules/sobakaido/include/markers/pushpins/webhues/'+marker_color+'.png';
}
icon.size = new google.maps.Size(marker_width, marker_height);
icon.anchor = new google.maps.Point(0, marker_height);
shadow.url = 'http://ingnet.jp/modules/sobakaido/include/markers/pushpins/webhues/shadow.png';
shadow.anchor = new google.maps.Point(2, 31);
markeropt = {
map: this.map,
position: point,
animation: google.maps.Animation.DROP,
icon: icon,
shadow: shadow,
optimized: false
};
marker = new google.maps.Marker(markeropt);
infowin_opts = {
maxWidth: this.infowin_max
};
google.maps.event.clearListeners(marker, 'click');
google.maps.event.clearListeners(marker, 'infowindowopen');
if( typeof(modname) != 'undefined' && (typeof(gid) != 'undefined' || typeof(nid) != 'undefined') ){
opt = '&modname='+modname+'&gid='+gid+'&nid='+nid;
if( point.lng() != 0 ){
google.maps.event.addListener(marker, 'click', function(){
html = readMaterialAdminAsync(''+opt+'', ''+marker_num+'');
var iwin = new google.maps.InfoWindow(infowin_opts);
iwin.setOptions({
content: html,
disableAutoPan: true
});
// info panel
open_infopanel([html], marker, marker_num)
_map.getMapObj().panTo(marker.getPosition());
_map.getMapObj().panBy(0,_centerdiff_y);
});
}
} else if( typeof(modname) != 'undefined' ){
google.maps.event.addListener(marker, 'click', function(){
modname = putMaterial(''+modname+'');
var iwin = new google.maps.InfoWindow(infowin_opts);
iwin.setOptions({
content: modname,
disableAutoPan: true
});
_map.infoWindowOpen(iwin, _map.map, marker);
});
}
if( typeof(mainmarkers) == 'undefined' ){
_markers[marker_num] = {
obj: marker,
gid: gid,
nid: nid
};
}
return marker;
},
//
// Create MainMarker(Click for DBaccess)
//
createMainMarker : function(point, modname, gid, nid, marker_num, marker_color_i, marker_str){
var num = '';
var opt = '';
var icon = new google.maps.MarkerImage();
var marker;
var markeropt;
var marker_infos;
var marker_color = '';
var marker_width = 0;
var marker_height = 0;
var infowin_opts;
if( typeof(marker_color_i) != 'undefined' ){
marker_infos = marker_color_i.split(',');
if( typeof(marker_infos[0]) != 'undefined' ){marker_color = marker_infos[0];}
if( typeof(marker_infos[1]) != 'undefined' ){marker_width = marker_infos[1];}
if( typeof(marker_infos[2]) != 'undefined' ){marker_height = marker_infos[2];}
}
if( typeof(modname) == 'undefined' || (typeof(gid) == 'undefined' && typeof(nid) == 'undefined') ){return;}
//if( typeof(marker_str) == 'undefined' ){num = marker_num+1;} else {num = marker_str;}
if( typeof(marker_str) == 'undefined' ){num = marker_num+1;} else {num = marker_str;}
if( marker_color == '' ){marker_color = '086';}
if( ! marker_width ){marker_width = 17;}
if( ! marker_height ){marker_height = 23;}
if( _onnumber == 1 ){
icon.url = 'http://ingnet.jp/modules/sobakaido/include/markers/numbered_marker.php?image=pushpins/webhues/';
icon.url += marker_color+'.png&text=';
icon.url += num;
} else {
icon.url = 'http://ingnet.jp/modules/sobakaido/include/markers/pushpins/webhues/'+marker_color+'.png';
}
icon.size = new google.maps.Size(marker_width, marker_height);
icon.anchor = new google.maps.Point(marker_width, 0);
markeropt = {
map: this.map,
animation: google.maps.Animation.DROP,
position: point,
icon: icon
};
marker = new google.maps.Marker(markeropt);
infowin_opts = {
maxWidth: this.infowin_max
};
google.maps.event.clearListeners(marker, 'click');
google.maps.event.clearListeners(marker, 'infowindowopen');
opt = '&modname='+modname+'&gid='+gid+'&nid='+nid;
google.maps.event.addListener(marker, 'click', function(){
if( typeof(_winoff) == 'undefined' ){
html = readMaterialAdminAsync(''+opt+'', ''+marker_num+'');
var iwin = new google.maps.InfoWindow(infowin_opts);
iwin.setOptions({
content: html,
disableAutoPan: true
});
_map.infoWindowOpen(iwin, _map.map, marker);
}
});
//this.map.savePosition();
this.savePosition();
_mainmarker = marker;
return marker;
}
});