[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Google Maps фильтер по категориям
george_te

Здравствуйте делаю гугл мап фильтер по категориям! есть такой код JS:


 <script type="text/javascript">

var map;
var infowindow;
var image = [];
var gmarkers = [];

image['attraction'] = 'http://google-maps-icons.googlecode.com/files/beach.png';
image['food'] = 'http://google-maps-icons.googlecode.com/files/restaurant.png';
image['hotel'] = 'http://google-maps-icons.googlecode.com/files/hotel.png';
image['city'] = 'http://google-maps-icons.googlecode.com/files/smallcity.png';

function mapInit(){
var centerCoord = new google.maps.LatLng(41.70752269548981, 44.79205369949341);
var mapOptions = {
zoom: 7,
center: centerCoord,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

map = new google.maps.Map(document.getElementById("map"), mapOptions);

google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});

jQuery.getJSON("json.php", function(json) {
if (json.length > 0) {
for (i=0; i<json.length; i++) {
var place = json[i];
var category = json[i].tag;
addLocation(place,category);
}
}
}
);

function addLocation(place,category) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(place.lat, place.lng),
map: map,
title: place.name,
icon: image[place.tag]
});

marker.mycategory = category;
gmarkers.push(marker);

google.maps.event.addListener(marker, 'click', function() {
if (infowindow) infowindow.close();
infowindow = new google.maps.InfoWindow({
content: "<h3>"+ place.name +"</h3><p>" + place.tag +"</p><a href='/places/"+place.id+"'>Show more!</a>"
});
infowindow.open(map, marker);
});
}

function show(category) {
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].mycategory == category) {
gmarkers[i].setVisible(true);
}
}

document.getElementById(category+"box").checked = true;
}

function hide(category) {
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].mycategory == category) {
gmarkers[i].setVisible(false);
}
}

document.getElementById(category+"box").checked = false;
infowindow.close();
}

function boxclick(box,category) {
if (box.checked) {
show(category);
} else {
hide(category);
}
}



$('#attractionbox').click(function () {
boxclick(this, '1');
});


}

jQuery(document).ready(function(){
mapInit();
});

</
script>


и обработчик json.php

<?php
include('connect.php');
$sql = "SELECT * FROM vaucherebi";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$rows[] = array(
"lat" => $row['lat'],"lng" => $row['lng']);
}

$json = json_encode($rows);

$callback = $_GET['callback'];
echo $callback.'('. $json . ')';

?>



не получается сделать слдующее на клик чекбокса! первый он не исчезает! на второй на! но мне это не нудно! нужно сделать так что бы например я кликнул на этот чекбокс! и остались те маркеры которые относятся к её категории а остальные скрывались! Надеюсь вы меня понял! Спасибо за внимание!

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.