我有一個問題,我沒有設法解決。Google Maps類別
我開發了一個小腳本來加載Google Map。此腳本使用HTML 5來確定您當前的位置,然後在地圖上顯示一些地方。這些是從MySQL數據庫中讀取的地方。
問題是,我需要按類別過濾它們。 PHP文件負責從MySQL數據庫生成XML文件。
我可以通過以下參數來選擇類別:file.php類=東西
downloadUrl("file.php?cat=something", function(data) {
var markers = data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(markers[i].getAttribute("name"), markers[i].getAttribute("address"), markers[i].getAttribute("type"), latlng);
}
});
的問題是,我想要去改變類別,當我點擊一個鏈接,例如上。
想象一下,您有左右類別的地圖。然後,當點擊某個類別時,地圖會自動刪除當前類別中標記的地點,並僅顯示新類別。
總之,它說file.php的地方?類別=東西,值「東西」應該動態改變。
我認爲它可以用JQuery來做,但我不知道如何。我嘗試了幾種方法,但仍然沒有做到。
我只是需要一種方法來改變這部分的價值,地圖將自動禁用其他類別,例如:
var something = doctor;
downloadUrl("file.php?cat="+something, function(data) {
這是我的腳本的完整代碼:
<!DOCTYPE html>
<html>
<head>
<title>Geolocalización</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">
<link href="estilo.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="util.js"></script>
</head>
<body onload="initialize()">
<div id="info"></div>
<div id="map_canvas" style="width: 780px; height: 600px; margin: 0 auto;"></div>
<script type="text/javascript">
var map;
var infowindow;
var geocoder;
var marker;
function initialize() {
var myOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
downloadUrl("phpsqlajax_genxml.php?cat=doctor", function(data) {
var markers = data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(markers[i].getAttribute("name"), markers[i].getAttribute("address"), markers[i].getAttribute("type"), latlng);
}
});
function createMarker(name, address, type, latlng) {
if(type=="doctor"){
var image = 'clinicas-y-hospitales.png';
}else{
var image = 'carabineros-y-seguridad.png';
}
var contentString = '<h2>'+name+'</h2> <br /><p>'+address+'</p>';
var marker = new google.maps.Marker({position: latlng, map: map, icon: image});
google.maps.event.addListener(marker, "click", function() {
if (infowindow) infowindow.close();
infowindow = new google.maps.InfoWindow({content: contentString, maxWidth: 200});
infowindow.open(map, marker);
});
return marker;
}
geocoder = new google.maps.Geocoder();
// Try HTML5 geolocation
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
map.setCenter(pos);
geocoder.geocode({'latLng': pos}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
marker = new google.maps.Marker({
position: pos,
map: map
});
infowindow = new google.maps.InfoWindow({content: '<p><strong>Usted está aquí:</strong> '+results[1].formatted_address+'</p>'});
infowindow.open(map, marker);
document.getElementById('info').innerHTML = results[1].formatted_address;
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: La geolocalización ha fallado.';
} else {
var content = 'Error: Tu navegador no soporta geolocalización.';
}
var options = {
map: map,
position: new google.maps.LatLng(60, 105),
content: content
};
var infowindow = new google.maps.InfoWindow(options);
map.setCenter(options.position);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</body>
</html>
看到劇本運行在這裏:
http://pruebas.davidbanner.cl/geo/index.php
什麼,我需要做一個類似的例子是在這裏:
http://mapas.vinadelmarchile.cl/index.php
非常感謝你的人誰可以給我一個想法或代碼幫助。
問候。