これが私の例です。
コードを追加すると、ページが読み込まれるとポリゴンだけが表示されますが、この関数でポリゴンにズームするとすべてのマーカーが表示されますが、私の夢はズームしたポリゴンのマーカーだけを取得することでした。 containsLocationでこの問題を解決するには、方法がわかりません。
function kmlShowPlacemark(pm) {
if (geoXmlDoc.placemarks[pm].polygon) {
map.fitBounds(geoXmlDoc.placemarks[pm].polygon.bounds);
addMarker(45.374632, 14.425697,'<b>93 Feet East</b><br/>150 Brick Lane, London E1 6RU<br/>7 Dec 2010 : Jenny & Johnny<br/>');
addMarker(45.374632, 14.425697,'<b>93 Feet East</b><br/>150 Brick Lane, London E1 6RU<br/>7 Dec 2010 : Jenny & Johnny<br/>');
addMarker(45.348674, 14.386749,'<b>Adelphi Theatre</b><br/>The Strand, London WC2E 7NA<br/>11 Oct 2010 : Love Never Dies');
addMarker(45.35051, 14.351883,'<b>Adelphi Theatre</b><br/>The Strand, London WC2E 7NA<br/>11 Oct 2010 : Love Never Dies');
addMarker(45.319618, 14.501915,'<b>Albany, The</b><br/>240 Gt. Portland Street, London W1W 5QU');
addMarker(45.339893, 14.475479,'<b>Aldwych Theatre</b><br/>Aldwych, London WC2B 4DF<br/>11 Oct 2010 : Dirty Dancing');
addMarker(45.343513, 14.436684,'<b>Alexandra Palace</b><br/>Wood Green, London N22<br/>30 Oct 2010 : Lynx All-Nighter');
addMarker(45.330736, 14.434211,'<b>Stan F.La Guardia 10</b><br/>Najbolji stan na svijetu');
addMarker(45.385431, 14.357071,'<b>sdas</b><br/>dfsada');
}
for (var i=0;i<geoXmlDoc.placemarks.length;i++) {
var placemark = geoXmlDoc.placemarks[i];
if (i == pm) {
if (placemark.polygon) placemark.polygon.setMap(null);
if (placemark.polyline) placemark.polyline.setMap(map);
} else {
if (placemark.polygon) placemark.polygon.setMap(map);
if (placemark.polyline) placemark.polyline.setMap(null);
}
}
}
次の問題は部分的に解決されました。[すべてのポリゴンを表示](Prikažisve kvartove)を押すと、関数showAllと呼ばれ、すべてのポリゴンが表示されますが、マーカーなしですべてのポリゴンが表示される必要があります。2つの方法を試しましたが、うまくいきません。marker.setVisible(false); およびmarker.setMap(null); そして、基本ページをロードするよりもtop.location = "test2.php"; これをよりよく解決するにはどうすればよいですか?
function showAll() {
top.location="test2.php";
map.fitBounds(geoXmlDoc.bounds); //show all bounds
map.setZoom(13);
//marker.setVisible(false);
//marker.setMap(null);
for (var i=0;i<geoXmlDoc.placemarks.length;i++) {
var placemark = geoXmlDoc.placemarks[i];
if (placemark.polygon) placemark.polygon.setMap(map);
if (placemark.polyline) placemark.polyline.setMap(map);
}
}
マーカーを非表示にしようとしましたが、方法が良くありません。これは、方法の後でマーカーが表示されなくなったためです。これを行う方法は次のとおりです。
function hideMarkers(){
for(var i=0; i<hmarkers.length; i++){
hmarkers[i].setVisible(false);
}
}
<?
$query = mysql_query("SELECT * FROM poi_example");
while ($row = mysql_fetch_array($query)){
$name=$row['name'];
$lat=$row['lat'];
$lon=$row['lon'];
$desc=$row['desc'];
echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc');\n");
echo 'hideMarkers();'
}
?>