var jQuery161_1323235249 = jQuery.noConflict(true);
(function($) {
$(function(){
var map, bounds, infowindow, centermarker;
var points = new Array();
initialize();
function createUrl() {
bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var args = 'id=29720&minX='+southWest.lng()+'&maxX='+northEast.lng()+'&minY='+southWest.lat()+'&maxY='+northEast.lat();
var url = '/images/usergmap/data.php?'+args;
return url;
}
function checkRange(pointX, pointY) {
bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
if(southWest.lng() < pointX && pointX < northEast.lng() &&
southWest.lat() < pointY && pointY < northEast.lat()){
return true;
}
return false;
}
function createMarker(markerPoint) {
var index = eval(markerPoint.type);
var point= new google.maps.LatLng(markerPoint.lat, markerPoint.lng);
var image=new google.maps.MarkerImage(
icons[index].image,
new google.maps.Size(icons[index].iconSizeX, icons[index].iconSizeY),
new google.maps.Point(0, 0),
new google.maps.Point(icons[index].iconAnchorX, icons[index].iconAnchorY)
);
var shadow=new google.maps.MarkerImage(
icons[index].shadow,
new google.maps.Size(icons[index].shadowSizeX, icons[index].shadowSizeY),
new google.maps.Point(0, 0),
new google.maps.Point(icons[index].iconAnchorX, icons[index].iconAnchorY)
);
var marker=new google.maps.Marker({
position: point,
map: map,
icon: image,
shadow: shadow
});
var html = '
';
html += markerPoint.text;
html += '
';
google.maps.event.addListener(marker, 'click', function() {
if(infowindow) infowindow.close();
infowindow=new google.maps.InfoWindow({
content: html
});
infowindow.open(map,marker);
});
return marker;
}
function createMarkerPoint(markerData) {
this.id = parseFloat(markerData.eq(0).attr("id"));
this.lng = parseFloat(markerData.eq(0).attr("lng"));
this.lat = parseFloat(markerData.eq(0).attr("lat"));
this.title = markerData.eq(0).attr("title");
this.type = markerData.eq(0).attr("icon_type");
this.text = markerData.eq(0).attr("text");
this.status = markerData.eq(0).attr("status");
this.marker = null;
}
function createCenterMarker() {
if(!centermarker){
var point= map.getCenter();
var image=new google.maps.MarkerImage(
"//www.p-kit.com/usergmap/images/marker_center.png",
new google.maps.Size(23,23),
new google.maps.Point(0, 0),
new google.maps.Point(12,12)
);
var shadow=new google.maps.MarkerImage(
"http://www.p-kit.com/usergmap/images/marker_center_shadow.png",
new google.maps.Size(29,29),
new google.maps.Point(0, 0),
new google.maps.Point(12,12)
);
centermarker=new google.maps.Marker({
position: point,
map: map,
icon: image,
shadow: shadow
});
}else{
var point= map.getCenter();
centermarker.setPosition(point);
}
}
function httpRequest() {
createCenterMarker();
var tmppoints = new Array();
var xmlurl = createUrl();
$.ajax({
type:"get",
cache:false,
url: xmlurl,
success:function(xml){
// 枠外のマーカー削除
while(points.length){
var mPoint = points.pop();
if(checkRange(mPoint.lng, mPoint.lat)){
tmppoints.push(mPoint);
}else{
mPoint.marker.setVisible(false);
delete mPoint.marker;
delete mPoint;
}
}
points = tmppoints;
$(xml).find("marker").each(function(){
setflag = false;
var markerPoint = new createMarkerPoint($(this));
for (var j = 0; j < points.length; j++) {
if(points[j].lng == markerPoint.lng && points[j].lat == markerPoint.lat){
setflag = true;
delete markerPoint;
}
}
if(setflag == false){
markerPoint.marker = createMarker(markerPoint);
points.push(markerPoint);
}
});
},
error:function(XMLHttpRequest, textStatus, errorThrown){
//alert(textStatus);
}
});
}
function initialize() {
var latlng = new google.maps.LatLng(36.30771819583613,139.8003387451172);
var myOptions = {
zoom: 13,
center: latlng,
panControl: true,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL },
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
},
streetViewControl: true,
overviewMapControl: true,
overviewMapControlOptions:{
opened: true
},
mapTypeId: google.maps.MapTypeId.ROADMAP };
map = new google.maps.Map(document.getElementById("map_canvas_1323235249"),
myOptions);
geocoder = new google.maps.Geocoder();
google.maps.event.addListener(map, 'idle', httpRequest);
}
});
})(jQuery161_1323235249);