谷歌地图上的30000个位置
30,000 locations on Google Map
我想用JS在谷歌地图上显示30000个位置。但我的浏览器没有响应。有人能给我一些解决方案吗。我的代码如下:-
<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
.loader {
border-top: 16px solid blue;
border-right: 16px solid green;
border-bottom: 16px solid red;
border-left: 16px solid pink;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<script src="http://jquery-csv.googlecode.com/git/src/jquery.csv.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=nsddjfhjshfghjsdfgjhfhjfhvf&callback=initMap" async defer></script>
</head>
<body>
<div id="inputs" class="clearfix">
<input type="file" id="files" name="files[]" multiple />
</div>
<div id="map"></div>
<script>
var map;
function initMap() {
$(".map").hide();
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 28.6139, lng: 77.2090},
zoom: 5
});
}
$(document).ready(function() {
$('#files').bind('change', handleFileSelect);
});
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];
printTable(file);
}
function printTable(file) {
var reader = new FileReader();
reader.readAsText(file);
var markers = [];
reader.onload = function(event){
var csv = event.target.result;
var data = $.csv.toArrays(csv);
var temp;
for(var row in data) {
for(var item in data[row]) {
temp=data[row][item];
if (!temp.trim() || temp.trim() == null || temp.trim() =='') {
console.error("string empty");
}
else
{
//console.log(data[row][item]);
var array1 = JSON.parse(data[row][item]);
markers.push(array1);
delete this.array1;
}
}
}
showMarker(markers);
};
}
function showMarker(mark)
{
for(var array1 in mark) {
new google.maps.Marker({
position: {lat: mark[array1][1], lng: mark[array1][0]},
icon: {
path: google.maps.SymbolPath.CIRCLE,
scale: 2,
fillColor: '#F44336',
strokeColor: '#F44336',
fillOpacity: 0.8,
strokeWeight: 0
},
map: map,
});
}
$(".map").show();
}
</script>
</body>
</html>
任何建议都会有所帮助。提前感谢!!
放大到远处时,可能会将点聚合在一起?我曾经在谷歌图表上遇到过类似的问题。我通过确定一次显示的最大点数并将点聚合在一起来获得该值来解决这个问题。视图是放大后重新绘制的。
相关文章:
- 如何将返回的值应用于多个不同位置的多个选择器
- 使用Google Maps JavaScript API v3和Geocoding API映射多个位置
- 修复列表的绝对位置(li's隐藏在前两个后面)
- 如何在谷歌地图上为单个位置添加多个标记
- 在AngularJS中的两个位置使用相同的控制器
- 我需要从文本框中的名字和姓氏的前两个字母到页面中的某个位置
- 谷歌地图上的30000个位置
- Google Maps JavaScript API v3:getDetails(请求,回调),用于多个位置
- 使用绝对位置循环形成 9 个盒子
- 使用javascript获取多个图像的位置
- .replace 始终将字符放在第一个位置
- 在两个位置显示数组中的随机单词
- 在结束请求上设置多个滚动条位置
- REGEX (javascript) - 允许字母数字字符中的特殊字符不在第一个位置
- 获取可滚动列表中第一个可见项的位置
- 自动调整谷歌使用位置id映射多个标记
- 1行代码(console.log),代码中的两个位置=两个结果差异
- 获取数组中非null的特定值的位置(第一个和最后一个)
- 平滑的页面滚动-首先点击滚动到错误的位置.第二个链接很好
- G.地图javascript从我的位置多个方向.重新加载页面