/*
map.js v1.1
GoogleMapAPI v3用
*/
/*マップ表示用*/
var mapname; //マップID
var mc_lat; //中心座標の緯度
var mc_lng; //中心座標の経度
var mp_lat; //マーカーの緯度
var mp_lng; //マーカーの経度
var zoom; //ズーム値
var map;
var maker;
function map_single(mapname, mapcomment){
var mapdiv = document.getElementById(mapname);
if(document.getElementById(mapname) != null){
// Class「gmap_coords」から座標データを取得する
var gmap_coords = $(".gmap_coord")[0];
if(gmap_coords != null){
gmap_coords_array = gmap_coords.innerHTML.split(",");
if(gmap_coords_array.length == 5){
mp_lat = parseFloat(gmap_coords_array[0]);
mp_lng = parseFloat(gmap_coords_array[1]);
mc_lat = parseFloat(gmap_coords_array[2]);
mc_lng = parseFloat(gmap_coords_array[3]);
zoom = parseInt(gmap_coords_array[4]);
}
}
//吹き出し用データを取得する
comment = "
";
comment += document.getElementById(mapcomment).innerHTML;
comment += "
";
// マップオプション設定
var map_option = {
center: new google.maps.LatLng(mc_lat, mc_lng),
zoom: zoom,
mapTypeId: google.maps.MapTypeId.ROADMAP // マップタイプ
};
// マップ描画
map = new google.maps.Map(mapdiv, map_option);
// マーカー表示
var get_obj = $(".gmap_title a")[0];
AddGMarker(get_obj, mp_lat, mp_lng, comment);
}
}
function map_all(mapname, mapcommentlist){
// マップオブジェクト設定
var mapdiv = document.getElementById(mapname);
var minLat = 999;
var maxLat = 0;
var minLng = 999;
var maxLng = 0;
var content_list = document.getElementById(mapcommentlist);
var get_li_array = content_list.getElementsByTagName("li");
// 初期設定(とりあえずマップを表示させる)
var LatLngCenter = new google.maps.LatLng(34.6862971, 135.5196609);
zoom = 4;
var map_option = {
zoom: zoom,
center: LatLngCenter,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP // マップタイプ
};
map = new google.maps.Map(mapdiv, map_option);
// データが空でない場合
if(get_li_array.length != 0){
var text_data = "";
for(i=0; i";
//マーカー用座標
coord = $(".gmap_coord")[i].innerHTML;
coord_array = coord.split(',');
coord_lat = coord_array[0];
coord_lag = coord_array[1];
coord_lat = parseFloat(coord_lat);
coord_lag = parseFloat(coord_lag);
//text_data += coord+"
";
var get_obj = $(".gmap_title a")[i];
//マーカーを表示
AddGMarker(get_obj, coord_lat, coord_lag, comment);
//中心座標を取得するため、緯度経度の最小値と最大値を取得する
if(coord_lat < minLat){
minLat = coord_lat;
}
if(coord_lat > maxLat){
maxLat = coord_lat;
}
if(coord_lag < minLng){
minLng = coord_lag;
}
if(coord_lag > maxLng){
maxLng = coord_lag;
}
}
//document.getElementById("text").innerHTML = text_data;
minLat = parseFloat(minLat);
maxLat = parseFloat(maxLat);
minLng = parseFloat(minLng);
maxLng = parseFloat(maxLng);
//中心座標とズームを自動調整
var minLatLng = new google.maps.LatLng(minLat,minLng);
var maxLatLng = new google.maps.LatLng(maxLat,maxLng);
var LatLngBounds = new google.maps.LatLngBounds(minLatLng,maxLatLng);
LatLngCenter = LatLngBounds.getCenter();
zoom = map.fitBounds(LatLngBounds);
if(zoom >= 16){
zoom = 16;
}else if(zoom <= 4){
zoom = 4;
}
//中心座標とズームを設定
map.setZoom(zoom);
map.setCenter(LatLngCenter);
}
}
//マーカー表示用関数
function AddGMarker(obj, get_mp_lat, get_mp_lng, get_comment){
get_mp_lat = parseFloat(get_mp_lat);
get_mp_lng = parseFloat(get_mp_lng);
var position = new google.maps.LatLng(get_mp_lat, get_mp_lng);
// マーカーオブジェクト生成
var marker = new google.maps.Marker({
position: position,
map: map
});
//情報ウィンドウ描画
var infoWindow = new google.maps.InfoWindow({
content: get_comment
});
//マーカーをクリックした場合
google.maps.event.addListener(marker,"click",function(){
infoWindow.open(map,marker);
});
var browser_type = browser();
//リストから店名をクリックした場合
if(browser_type == "MSIE"){
obj.attachEvent("onclick",function(){ infoWindow.open(map,marker); });
}else{
obj.addEventListener("click",function(){ infoWindow.open(map,marker); }, false);
}
}
//ブラウザ判別
function browser(){
if(navigator.userAgent.indexOf("Opera") != -1){
type = "Opera";
}else if(navigator.userAgent.indexOf("MSIE") != -1){
type = "MSIE";
}else if(navigator.userAgent.indexOf("Firefox") != -1){
type = "Firefox";
}else if(navigator.userAgent.indexOf("Netscape") != -1){
type = "Netscape";
}else if(navigator.userAgent.indexOf("Safari") != -1){
type = "Safari";
}else{
type = "none";
}
return type;
}