Google 地图 V3 - 我无法调和关闭

2023-12-02

我知道这是一个常见问题,但我已经盯着,阅读谷歌搜索并盯着更多,但我看不出出了什么问题。

我从 MySql 表填充地图,对英国邮政编码进行反向地理编码,在结果周围画一个圆圈,但我无法理解为什么我的闭包函数不起作用。

据我了解,闭包原则是关于从循环范围之外访问变量,我试图用该函数来完成它 - 但在我的一生中,我无法让它工作。

我确信有人会回答我明显的错误,并且我将不胜感激任何人可以提供的任何帮助。

var mapOptions = {
    zoom : 8,
    center : new google.maps.LatLng(37.09024, -95.712891),
    mapTypeId : google.maps.MapTypeId.ROADMAP
};

var infowindow = new google.maps.InfoWindow({
    content : contentString
});

var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var contentString;
var i

downloadUrl("getXML.php", function(data) {

    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("name");
        contentString =(name);
        var postcode = markers[i].getAttribute("postcode");
        var dateadded = markers[i].getAttribute("dateadded");
        var extra = markers[i].getAttribute("extra");

        geocoder.geocode({
            'address' : postcode
        }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map : map,
                    clickable : true,
                    position : results[0].geometry.location
                })
                google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                        infowindow.setContent(name );
                        infowindow.open(map, marker);
                    }
                })(marker, i));

                var circle = new google.maps.Circle({
                    map : map,
                    radius : 12070.99, // 15 miles in metres
                    fillColor : '#AA0000'
                });
                circle.bindTo('center', marker, 'position');

            } else {
                alert('Geocode was not successful for the following reason: ' + status);
            }

        });

    }

});

我将函数闭包与标记 (createMarker) 和地理编码器 (geocodeMarker) 的函数一起使用

var mapOptions = {
    zoom : 8,
    center : new google.maps.LatLng(37.09024, -95.712891),
    mapTypeId : google.maps.MapTypeId.ROADMAP
};

var infowindow = new google.maps.InfoWindow({
    content : contentString
});

var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var contentString;
var i;
function createMarker(latlng, name, html)
{
   var marker = new google.maps.Marker({
         map : map,
         clickable : true,
         position : latlng
     })
     google.maps.event.addListener(marker, 'click', function() {
         infowindow.setContent(name );
         infowindow.open(map, marker);
     });

     var circle = new google.maps.Circle({
         map : map,
         radius : 12070.99, // 15 miles in metres
         fillColor : '#AA0000'
     });
     circle.bindTo('center', marker, 'position');
}

function geocodeMarker(postcode, name, html)
{
  geocoder.geocode({
      'address' : postcode
  }, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
          map.setCenter(results[0].geometry.location);
          createMarker(results[0].geometry.location, html);
      } else {
          alert('Geocode was not successful for the following reason: ' + status);
      }

  });
}

downloadUrl("getXML.php", function(data) {

        var xml = xmlParse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("name");
        contentString =(name);
        var postcode = markers[i].getAttribute("postcode");
        var dateadded = markers[i].getAttribute("dateadded");
        var extra = markers[i].getAttribute("extra");
        geocodeMarker(postcode, name, contentString);

    }

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 地图 V3 - 我无法调和关闭 的相关文章

随机推荐

  • highcharts:在可见时而不是在页面加载时触发动画

    我有一个页面分为几个部分 可以通过锚点访问 有没有办法让 highcharts 动画在其特定部分变得可见而不是在页面加载时触发 http jsfiddle net YFMSb 2 图表位于 技能 下 因此希望在调出页面的该部分时出现初始动画
  • 如何使 bootstrap-multiselect 不可见我的默认值?

    我正在使用引导多选插件使处理下拉菜单更容易 但是 我在尝试默认隐藏菜单时遇到了问题 基本上 我有一个复选框 当选中此复选框时 我会显示下拉菜单 当取消选中它时 菜单应该隐藏 默认情况下该复选框未选中 因此我希望默认情况下也隐藏菜单 我尝试使
  • 如何确定Azure中应用程序服务计划CPU百分比90%的原因?

    我试图了解最大 CPU 百分比 内存利用率的原因应用服务计划但无法在天蓝色门户中找到任何简单的方法 在我的应用程序服务计划中 创建了 20 个应用程序服务 在 20 个应用程序服务中 我仅将 2 3 个应用程序服务用于用户界面 其他应用程序
  • 如何在 R 中执行 SQL 脚本时使用动态值

    我的 R 工作流程现在涉及处理大量查询 RPostgreSQL图书馆 我真的想让代码将来变得易于维护和管理 我开始从不同的地方加载大型查询 SQL files this有帮助 并且效果很好 然后我开始使用插值 that有帮助 这意味着我可以
  • 如何在 Apache 中使用 pcntl_fork() ?

    这是我的代码 里面index php 只是一个例子 pid pcntl fork if pid 1 die failed to fork else if pid nothing to do else putDataIntoWebServic
  • android mediaplayer - 播放一次铃声

    我尝试使用 MediaPlayer 类播放一次设备铃声 我必须使用 MediaPlayer 因为我将铃声与应用程序中的其他音频源一起使用 所以我尝试以下方法来播放随机铃声 但我无法阻止它循环 它继续播放 是否可以使用 MediaPlayer
  • 为什么不能将“使用静态”功能与私有枚举一起使用?还有其他选择吗?

    我有一个使用私有枚举的类 我想使用 C 6 使用静态 功能 如下所示 using static ConsoleForSimpleTests Foo MyEnum namespace ConsoleForSimpleTests public
  • 如何使用 XSSF (Apache POI 3.8) 调整图表大小?

    我想知道是否有办法使用 Apache POI XSSF 调整图表大小 目前我正在使用 Excel 模板 该模板具有一个图表 当使用 nameRanges 插入更多数据时 该图表会发生变化 一切正常 我面临的唯一麻烦是 图表始终保持相同的大小
  • 更改 Android 中的通知意图

    我有一项服务显示一条通知 我希望该通知能够在用户每次按下该通知时转到我的应用程序的特定活动 通常它是用户显示的最后一个 但并非总是如此 如果该活动之前已启动 则应返回该活动 如果没有 则应在应用程序的任务内打开该活动 并将其添加到活动任务中
  • 用对象动态填充 ArrayList

    我有抽象类 Human 它由其他两个类 Student 和 Worker 扩展 我正在尝试填写两个数组列表 Student 类型的 ArrayList 和 Worker 类型的 ArrayList 是动态的 public abstract
  • http 到 https 重定向 (tomcat/jboss)

    我们希望将访问应用程序的 http url 的所有流量重定向到 https 为此 我们在deploy jboss web deployer conf 目录中的 web xml 中设置以下值
  • 在perl中将元素添加到xml文件

    我有一个 xml 文件 如下所示
  • 收集器分组按java 8

    考虑这两个类 学科类别 class Subject long id String category String description public Subject long id String category String descr
  • 用于更改 Word 文档中的字体的脚本

    我有一个 Word 2007 文件 我想将 Courier New 字体的所有用法更改为 Lucida 控制台字体 我需要一个脚本来查找以该字体格式化的所有单词并将其更改为新字体 我怎样才能做到这一点 在Word中 您可以自己录制宏 然后打
  • 如何在ajax调用中传递特殊字符

    如何在ajax调用中传递特殊字符变量i并在spring控制器中获取值 如果文件name jsuduu function deleeteimg var filename filenm text alert filename var filen
  • 将除少数 IP 地址之外的所有请求重定向到子目录

    这个问题试图结合从以前的一些答案中获得的知识 所以不要标记为重复 除非答案满足即将给出的所有标准 这就是我想做的 我需要暂时将 htaccess 访问者重定向到我的网站的克隆副本 以便我可以对现有网站进行修改 因此 我有以下需求 1 所有用
  • IP 摄像机捕获 RTSP 流大延迟 OPENCV

    我正在尝试在 IP 摄像机上进行一些处理 效果很好 但我发现现实世界和视频捕获之间存在大约 7 10 秒的延迟 我正在使用 rtsp ip port live ext 该相机有一个网络界面 IE ActiveX 可以以非常低的延迟显示图像
  • 从 json 文本文件加载 JSONObject 的最佳方法是什么?

    将包含 JSON 的文件加载到 JSONObject 中的最简单方法是什么 目前我正在使用 json lib 这就是我所拥有的 但它引发了异常 XMLSerializer xml new XMLSerializer JSON json xm
  • JsonView注解对象的所有字段

    如何将 Java 对象的所有字段包含到 JSON 响应 视图 中而不指定 JsonView在该 Java 对象的每个字段上 编辑 我需要这个来实现而不使用另一个外部库 这是一个常见问题 JsonView 该注释仅适用于方法和属性 因此您不能
  • Google 地图 V3 - 我无法调和关闭

    我知道这是一个常见问题 但我已经盯着 阅读谷歌搜索并盯着更多 但我看不出出了什么问题 我从 MySql 表填充地图 对英国邮政编码进行反向地理编码 在结果周围画一个圆圈 但我无法理解为什么我的闭包函数不起作用 据我了解 闭包原则是关于从循环