/*
js
*/
var map;
var icon;
var mflag = 1;
var maxpoint = 50;
var icon;
var data;
var markerlist = new Array();
var infowindowlist = new Array();
/*var category = new Array('種別を選択','すべて','アパート・マンション・戸建','オフィス・店舗');
var area = new Array('地域を選択','すべて','長野市北部(犀川以北)','長野市南部(犀川以南)','千曲市','長野県内その他');
var scale = new Array('間取りを選択','すべて','1R~1LDK','2DK~2LDK','3DK~3LDK','4DK以上','オフィス・店舗');
var price = new Array('家賃を選択','すべて','4万円以下','4万円超~5万円以下','5万円超~6万円以下','6万円超~7万円以下','7万円超');
*/
var category = {
1:"アパート・マンション・戸建",
2:"事務所・店舗・倉庫・駐車場",
0:"undefined"
};
var area = {
1:"長野市北部(犀川以北)",
2:"長野市南部(犀川以南)",
3:"千曲市",
4:"長野県内その他",
0:"undefined"
};
var scale = {
1:"1R~1DK(+S)",
2:"1LDK(+S)",
3:"2K~2DK(+S)",
4:"2LDK(+S)",
5:"3K~3LDK(+S)",
6:"4DK以上",
7:"事務所・店舗・倉庫・駐車場",
0:"undefined"
};
var price = {
1:"4万円以下",
2:"4万円超~5万円以下",
3:"5万円超~6万円以下",
4:"6万円超~7万円以下",
5:"7万円超",
0:"undefined"
};
var s_category = new Array();
var s_area = new Array();
var s_scale = new Array();
var s_price = new Array();
$(function(){
$("#options :checkbox").click(function(){
getParam();
clearOverlays(); // 表示済のマーカーを消去
plot();
});
init(36.642735368497526,138.18912506103516,15);
});
function init(lat,lng,z) {
var varlat = lat;
var varlng = lng;
var varzm = z;
var inipos = new google.maps.LatLng(varlat, varlng);
var mapOptions = {
zoom: 13,
disableDefaultUI: false,
zoomControl: true,
scrollwheel: true,
disableDoubleClickZoom: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: inipos
};
map = new google.maps.Map(document.getElementById("maparea"),mapOptions);
//移動終了後にエリアに対応するマーカーを表示
google.maps.event.addListener(map, "dragend", function() {
if(mflag == 1){
clearOverlays(); // 表示済のマーカーを消去
getParam();
plot();
}
mflag = 1;
});
google.maps.event.addListener(map, "zoom_changed", function() {
if(mflag == 1){
clearOverlays(); // 表示済のマーカーを消去
getParam();
plot();
}
mflag = 1;
});
}
function getParam(){
s_category = new Array();
s_area = new Array();
s_scale = new Array();
s_price = new Array();
$("#category input[type='checkbox']").each(function(){
//s_category.push(category[$(this).attr("value")]);
if ($(this).prop('checked') == true) {
s_category.push($(this).attr("value"));
}
});
/*$("#area :checked").each(function(){
s_area.push(area[$(this).attr("value")]);
});*/
$("#scale input[type='checkbox']").each(function(){
//s_scale.push(scale[$(this).attr("value")]);
if ($(this).prop('checked') == true) {
s_scale.push($(this).attr("value"));
}
});
$("#price input[type='checkbox']").each(function(){
//s_price.push(price[$(this).attr("value")]);
if ($(this).prop('checked') == true) {
s_price.push($(this).attr("value"));
}
});
}
function plot(){
//参考
//https://groups.google.fr/group/Google-Maps-API-Japan/browse_thread/thread/a91fc7af4a1907c1
var latlngBounds = map.getBounds();
var swLatlng = latlngBounds.getSouthWest();
var swlat = swLatlng.lat();
var swlng = swLatlng.lng();
var neLatlng = latlngBounds.getNorthEast();
var nelat = neLatlng.lat();
var nelng = neLatlng.lng();
str_category = s_category.join(",");
str_area = s_area.join(",");
str_scale = s_scale.join(",");
str_price = s_price.join(",");
var url = "./?m=data&nelat=" + nelat + "&nelng=" + nelng + "&swlat=" + swlat + "&swlng=" + swlng + "&cat_shubetsu=" + str_category + "&area=" + str_area + "&cat_madori=" + str_scale + "&cat_chinryou=" + str_price;
//console.debug(swLatlng);
//console.debug(url);
//./data.php?nelat=36.65650777456703&nelng=138.22689056396484&swlat=36.62896049954082&swlng=138.15135955810547
jQuery.ajax({
url : url,
type : "get",
success : function(results){
var xml = results
//$("h1").prepend(url)
// XMLのmarkerタグ要素の配列markersを作る
var markers = xml.getElementsByTagName("marker");
var n = markers.length;
if(n > 0){
data = new Array();
for(var i = 0; i < n; i++) {
data[i] = new Array();
data[i][0] = markers[i].getAttribute("Id");
data[i][1] = markers[i].getAttribute("Title");
data[i][2] = markers[i].getAttribute("Select4");//category
data[i][3] = markers[i].getAttribute("Select5");//area
data[i][4] = markers[i].getAttribute("Madori");
data[i][5] = markers[i].getAttribute("Chinryou");
data[i][6] = parseFloat(markers[i].getAttribute("Latitude"));
data[i][7] = parseFloat(markers[i].getAttribute("Longtitude"));
data[i][8] = markers[i].getAttribute("Zoom");
data[i][9] = markers[i].getAttribute("Bid");
data[i][10] = markers[i].getAttribute("filename");
}
var datalist = new Array();
var c = 1;
var clat = 0;
var clng = 0;
for(i = 0; i < n; i++){
datalist.push(data[i]);
if(c > maxpoint){
break;
}else{
c++;
clat += data[i][6];
clng += data[i][7];
}
}
n = datalist.length;
if(n > 0){
var detail = "";
if(n > maxpoint){
n = maxpoint;
var detail = "" + maxpoint + "件以上の物件があります。
地図を拡大してご覧下さい。";
}else{
//var detail = "" + n + "件の物件があります。";
var detail = "";
}
for(i = 0; i < n; i++){
var marker = makeMarker(map, datalist[i][6], datalist[i][7]);
var infowindow = makeWindow(datalist[i]);
makeInfowindow(map, marker, infowindow);
}
}else{
var detail = "条件に合う物件はありません";
}
}else{
var detail = "該当の物件はありません";
}
$("p#detail").html(detail);
}
});
}
function closeInfowindows() {
for (var i = 0; i < infowindowlist.length; i++) {
infowindowlist[i].close();
}
}
function makeWindow(msg) {
var infowindow = new google.maps.InfoWindow({
content: makeMessage(msg)
});
infowindowlist.push(infowindow);
return infowindow;
}
function makeMarker(map, lat, lng) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map
});
marker.setIcon('/common/images/icon_2d.png')
markerlist.push(marker);
return marker;
}
function makeInfowindow(map, marker, infowindow) {
google.maps.event.addListener(marker, 'click', function(e) {
closeInfowindows();
infowindow.open(map, marker);
});
}
function makeMessage(g) {
var msg;
msg = "
" + g[1] + "
" + scale[g[4]] + "