Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Maps API-标记群集不起作用_Javascript_Jquery_Google Maps_Google Maps Api 3_Markerclusterer - Fatal编程技术网

Javascript Google Maps API-标记群集不起作用

Javascript Google Maps API-标记群集不起作用,javascript,jquery,google-maps,google-maps-api-3,markerclusterer,Javascript,Jquery,Google Maps,Google Maps Api 3,Markerclusterer,我目前正在开发一个Google地图,它将显示许多地图标记,数据位于外部JSON文件中的一系列数组中。对于重叠的标记也使用蜘蛛侠,因为它们具有相同的坐标。我正在尝试实现标记聚类,以使地图在缩小时不那么混乱,但是聚类没有发生。开发者工具上的控制台一直在用markerclusterer.js源代码记录未捕获的TypeErrors,声称它无法设置属性,或者说有些东西不是函数,但我真的不确定该怎么办。我是否使用了错误的来源,是否还有其他问题,或者两者都有 代码: 变量映射 函数初始化{ map=new

我目前正在开发一个Google地图,它将显示许多地图标记,数据位于外部JSON文件中的一系列数组中。对于重叠的标记也使用蜘蛛侠,因为它们具有相同的坐标。我正在尝试实现标记聚类,以使地图在缩小时不那么混乱,但是聚类没有发生。开发者工具上的控制台一直在用markerclusterer.js源代码记录未捕获的TypeErrors,声称它无法设置属性,或者说有些东西不是函数,但我真的不确定该怎么办。我是否使用了错误的来源,是否还有其他问题,或者两者都有

代码:

变量映射 函数初始化{ map=new google.maps.Mapdocument.getElementByIdmap\u画布{ 中心:new google.maps.LatLng40.8039941,-77.863459, 缩放:14, mapTypeId:google.maps.mapTypeId.ROADMAP}; var oms=新的重叠标记SpiderMap,{ markersWontMove:没错, 马克斯旺泰德:是的, //基本格式事件:true }; var selectedInfo窗口 $document.readyfunction{ $.getJSONcrime\u maps\u test.json,functionjson1{ $.eachjson1,函数键,数据{ var infoWindow=new google.maps.infoWindow; var latLng=new google.maps.LatLngdata.lat,data.lng; //创建标记并将其放在地图上 var marker=new google.maps.marker{ 位置:latLng, 标题:data.location }; marker.setMapmap; setTimeoutfunction{marker.setMapmap;},1000; google.maps.event.addListenermarker,“蜘蛛点击”,functionmarker,数据{ 返回函数{ var日期=数据。已发生; var事件=数据事件; var位置=data.Location; 报告的var=已报告的数据; 风险值犯罪=数据犯罪; var Nature=事件的data.Nature\u; var iwContent=+地点++++事件编号:+事件+

+++发生日期:+日期+

+++报告日期:+报告+

+++违法行为:+违法行为+

+++事件性质:+性质+

+; //将infowindow的div直接插入setContent括号是不起作用的,所以我创建了一个变量来容纳它。 infoWindow.setContentiwContent; 如果selectedInfoWindow!=null&&selectedInfoWindow.getMap!=null{ 选择FoWindow.close; //如果单击的窗口是所选窗口,请取消选择并返回 如果选择了infoWindow==infoWindow{ selectedInfoWindow=null; 回来 } } //如果你到达这里,这意味着你应该打开新的信息窗口 //因为它与所选的不同 选择了infoWindow=infoWindow; 选择FoWindow.openmap,标记; var markerCluster=新的MarkerClusterermap,marker, {imagePath:'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'}; } }标记、数据; oms.addMarkermarker; }; }; }; window.map=map; window.oms=oms; }
MarkerCluster的主要问题是,您正在为每个标记创建一个新的标记,您希望将其与OMS一样使用,将所有标记添加到同一个标记中,并让它管理它们。由于您使用依赖于API的第三方库以同步方式加载所有内容,因此您在加载带有回调的API时也会遇到问题,但最好不是异步加载,因为您使用的是依赖于API的第三方库。请删除回调并使用onload事件处理程序初始化调用

代码段:

变量映射 var标记=[]; 函数初始化{ map=new google.maps.Mapdocument.getElementByIdmap\u画布{ 中心:new google.maps.LatLng40.8039941,-77.863459, 缩放:14, mapTypeId:google.maps.mapTypeId.ROADMAP }; var oms=新的重叠标记SpiderMap{ markersWontMove:没错, 马克斯旺泰德:是的, //基本格式事件:true }; var selectedInfo窗口 $document.readyfunction{ //$.getJSONcrime\u maps\u test.json,functionjson1{ $.eachjson1,函数键,数据{ var infoWindow=new google.maps.infoWindow; var latLng=new google.maps.LatLngdata.lat,data.lng; //创建标记并将其放在地图上 var marker=new google.maps.marker{ 位置:latLng, 标题:data.location }; google.maps.event.addListenermarker,“蜘蛛点击”,functionmarker,数据{ 返回函数{ var日期=数据。已发生; var事件=数据事件; 变量位置 =数据位置; 报告的var=已报告的数据; 风险值犯罪=数据犯罪; var Nature=事件的data.Nature\u; var iwContent=+地点++++事件编号:+事件+

+++发生日期:+日期+

+++报告日期:+报告+

+++违法行为:+违法行为+

+++事件性质:+性质+

+; //将infowindow的div直接插入setContent括号是不起作用的,所以我创建了一个变量来容纳它。 infoWindow.setContentiwContent; 如果选择了FoWindow!=null&&selectedInfoWindow.getMap!=空的{ 选择FoWindow.close; //如果单击的窗口是所选窗口,请取消选择并返回 如果选择了infoWindow==infoWindow{ selectedInfoWindow=null; 回来 } } //如果你到达这里,这意味着你应该打开新的信息窗口 //因为它与所选的不同 选择了infoWindow=infoWindow; 选择FoWindow.openmap,标记; } }标记、数据; markers.pushmarker; oms.addMarkermarker; }; var markerCluster=新的MarkerClusterermap,markers{ imagePath:'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m' }; }; // }; window.map=map; window.oms=oms; } google.maps.event.AddDomainListenerWindow,加载,初始化; var json1=[{ 事件:PSU201701139, 发生时间:2017年3月25日23:25, 报道时间:2017年3月25日23时25分, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:持有少量大麻, 地点:波特大厅, 性格:开放, 纬度:40.8008254, 液化天然气:-77.8587917 }, { 事件:PSU201701136, 发生时间:2017年3月25日晚上9:25至9:30, 报道时间:2017年3月25日21:31, 事件性质:观察到游客高度醉酒, 罪行:在公共场合酗酒, 地点:布莱斯约旦中心, 性格:开放, 纬度:40.8086228, 液化天然气:-77.8642905 }, { 事件:PSU201701134, 发生时间:2017年3月25日下午8:52至8:58, 报道时间:2017年3月25日20:58, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:持有少量大麻, 地点:科廷大厅5楼, 性格:开放, 纬度:40.805098, 液化天然气:-77.861208 }, { 事件:PSU201701133, 发生时间:2017年3月25日下午8:43至8:47, 报道时间:2017年3月25日20:47, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:持有少量大麻, 地点:一楼Tener大厅, 性格:开放, 纬度:40.8062507, 液化天然气:-77.8659939 }, { 事件:PSU201701132, 发生时间:2017年3月23日12:01至凌晨2:00, 报道时间:2017年3月25日20:43, 事件性质:学生报告他们被一个已知的人袭击, 犯罪:勒死/骚扰/RFA请求协助, 地点:帕特森大厅, 性格:开放, 纬度:40.7900255, 液化天然气:-77.8749025 }, { 事件:PSU201701130, 发生时间:2017年3月25日下午8:38至8:55, 报道时间:2017年3月25日20:41, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:持有少量大麻, 地点:麦基大厅, 性格:开放, 纬度:40.7963782, 液化天然气:-77.8701405 }, { 事件:PSU201701030, 发生时间:2017年3月19日晚上8:00至10:00, 报道时间:2017年3月19日23时13分, 事件性质:学生报告他们无人看管的个人财产被盗, 违法行为:盗窃/50-200美元/建筑物, 地点:哈特兰夫特大厅, 性格:开放, 纬度:40.8001538, 液化天然气:-77.8600272 }, { 事件:PSU201701031, 发生时间:2017年3月15日下午12:00至8:00, 报道:3/19/17 19:04, 事件性质:员工报告盗窃无担保个人财产, 违法行为:盗窃/超过200美元/从建筑物, 地点:重拨Cmns, 性格:开放, 纬度:40.7995177, 液化天然气:-77.8581232 }, { 事件:PSU201701026, 发生时间:2017年3月18日晚上11:40至11:45, 报道时间:2017年3月18日23时42分, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:持有少量大麻, 地点:石堂, 性格:开放, 纬度:40.8070745, 液化天然气:-77.8638751 }, { 事件:PSU201701022, 发生时间:2017年3月18日晚上8:00至8:20, 报道时间:2017年3月18日20:23, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:持有少量大麻, 地点:Pennypacker大厅-四楼, 性格:开放, 纬度:40.8061624, 液化天然气:-77.8626794 }, { 事件:PSU201701018, 发生时间:2017年3月18日下午2:00至2:08, 报道:3/18/17 14:08, 事件性质:住院助理报告大麻气味,来源不明, 犯罪:占有 吸食少量大麻, 地点:彭尼帕克大厅, 性格:开放, 纬度:40.8061624, 液化天然气:-77.8626794 }, { 事件:PSU201701015, 发生时间:2017年3月13日下午3:31至2017年3月18日上午7:00, 报告时间:2017年3月18日10:02, 事件性质:员工报告大学财产意外损坏, 违法行为:RFA请求协助, 地点:Hub书店, 处置:关闭, 拉脱维亚:40.7984565, 液化天然气:-77.8610745 }, { 事件:PSU201701014, 发生时间:2017年3月18日9时15分, 报道时间:2017年3月18日9时15分, 事故性质:访客报告了两辆车相撞,没有受伤, 违法行为:车辆法规-事故, 地点:大学公园机场, 处置:关闭, 拉脱维亚:40.8517473, 液化天然气:-77.8496788 }, { 事件:PSU201701013, 发生时间:2017年3月18日凌晨3:41至4:05, 报道时间:2017年3月18日3:45, 事件性质:未成年学生被观察到高度中毒并被送往医院, 违法行为:Pur、Cons、Poss、Trans-Intox Bev/健康与安全/RFA请求协助, 地点:米夫林大厅, 性格:开放, 纬度:40.800492, 液化天然气:-77.8605983 }]; html, 身体 地图画布{ 身高:100%; 宽度:100%; 边际:0px; 填充:0px }
MarkerCluster的主要问题是,您正在为每个标记创建一个新的标记,您希望将其与OMS一样使用,将所有标记添加到同一个标记中,并让它管理它们。由于您使用依赖于API的第三方库以同步方式加载所有内容,因此您在加载带有回调的API时也会遇到问题,但最好不是异步加载,因为您使用的是依赖于API的第三方库。请删除回调并使用onload事件处理程序初始化调用。。这应该是一个真正的答案。@geocodezip谢谢你。把我的评论作为答案发布了。