在我缩放到的多边形中显示标记
Display markers in the polygon I zoomed to
下面是我的例子。
我添加了一些代码,当页面加载时,可以只看到多边形,这很好,但是当我用这个函数缩放到多边形时,我得到了所有的标记,但我的梦想是在多边形中只得到标记,我缩放到,所以我需要用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ži sve kvartove),它被称为函数showAll,它显示你所有的多边形,但它必须显示你所有的多边形没有标记。我尝试了两种方法,但它不适合我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();'
}
?>
我建议在开始时将所有标记添加到地图中(但隐藏它们),并将对它们的引用保存在数组中。然后当Polygon被点击时,通过数组测试google.maps.geometry.poly.containsLocation是否为true:
function kmlShowPlacemark(pm) {
if (geoXmlDoc.placemarks[pm].polygon) {
map.fitBounds(geoXmlDoc.placemarks[pm].polygon.bounds);
for (var i=0;i<gmarkers.length;i++) {
if (google.maps.geometry.poly.containsLocation(gmarkers[i].getPosition(),geoXmlDoc.placemarks[pm].polygon)) {
gmarkers[i].setMap(map);
} else {
gmarkers[i].setMap(null);
}
}
}
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);
}
}
}
(注意:下面的例子没有隐藏标记开始,因为我想知道他们在哪里,点击一个多边形隐藏所有的标记外的多边形和显示(再次)里面的)工作示例
要在第一次添加标记时隐藏标记,请从addMarker函数中删除"map"选项:
function addMarker(lat, lng, info) {
var pt = new google.maps.LatLng(lat, lng);
bounds.extend(pt);
var marker = new google.maps.Marker({
position: pt,
icon: icon
});
// rest of the code stays the same.
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- GoogleMaps V3仅显示1个多边形
- 单击角度谷歌地图中的多边形时如何显示窗口
- 谷歌地图/融合表Javascript HTML赢得't显示/可视化所有多边形数据(通过色标)
- 如何在具有多边形的同一地图上显示自定义标记
- 提交动态选择框值以显示多重多边形
- 在多边形贴图上显示 svg 圆
- HTML5画布,可以在多边形上/在多边形中显示图像
- 打开图层如何仅在鼠标悬停时显示多边形,并在鼠标退出时隐藏多边形
- 多边形的创建和显示之间的延迟
- Bing Maps v7-多边形会阻止多边形内(后面)显示的引脚的鼠标悬停事件
- 在谷歌地图上添加侧边栏,显示'的多边形属性
- 无法使用d3显示多边形
- 多个多边形显示在谷歌地图上
- 无法在谷歌地图上显示多边形
- 在我缩放到的多边形中显示标记
- 谷歌地图v3-Can't获取要在地图上显示的多边形和/或矩形
- 谷歌地图多边形显示/隐藏与复选框切换