Asp.net 数据点超过1700时加载Google Heatmap时出现内部服务器错误
我正在开发一个POC,其中datatable输出具有大量的纬度、经度和体积(重量)。当点的数量(或数据表中的记录)超过1700时,我面临一个问题。尽管如果数据点的数量小于1700,它可以正常工作 我们有超过1米的数据点必须绘制在地图上。有人能指出可能的错误吗?对于较大的数据点,我得到的错误如下 错误消息:加载资源失败:服务器响应状态为500(内部服务器错误) 也请找到下面的代码 代码隐藏Asp.net 数据点超过1700时加载Google Heatmap时出现内部服务器错误,asp.net,google-maps-api-3,heatmap,Asp.net,Google Maps Api 3,Heatmap,我正在开发一个POC,其中datatable输出具有大量的纬度、经度和体积(重量)。当点的数量(或数据表中的记录)超过1700时,我面临一个问题。尽管如果数据点的数量小于1700,它可以正常工作 我们有超过1米的数据点必须绘制在地图上。有人能指出可能的错误吗?对于较大的数据点,我得到的错误如下 错误消息:加载资源失败:服务器响应状态为500(内部服务器错误) 也请找到下面的代码 代码隐藏 [ScriptMethod(ResponseFormat = ResponseFormat.Json)
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public static string CreateDatatable()
{
MapDataDataContext mz = new MapDataDataContext();
var zipData = from zp in mz.GeoMapDatas
select zp;
var geoQuery = (from e in mz.GMapTables
join d in mz.GeoMapDatas on e.ZIP equals d.ZIPCode
select new { e.Measure, d.Latitude, d.Longitude }).Take(2000);
DataTable dt = new DataTable();
dt.Columns.Add("Measure", typeof(long));
dt.Columns.Add("Latitude", typeof(float));
dt.Columns.Add("Longitude", typeof(float));
geoQuery.CopyToDataTable(dt,LoadOption.PreserveChanges);
string json = JsonConvert.SerializeObject(dt);
json = json.TrimStart('"').TrimEnd('"');
return json;
}
Java脚本
<script type="text/javascript">
google.load('visualization', '1', { packages: ['table'] });
function OnLoad() {
$.ajax({
type: "POST",
url: "Default.aspx/CreateDatatable",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: initialize
});
}
var map, pointarray, heatmap;
function initialize(response) {
var obj = $.parseJSON(response.d);
var heatData = new Array();
for (var i = 0; i < obj.length; i++) {
// heatData.push( new google.maps.LatLng(obj[i].Latitude, obj[i].Longitude));
heatData.push({ location: new google.maps.LatLng(obj[i].Latitude, obj[i].Longitude), weight: obj[i].Measure });
}
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(40.0000,-100.0000),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var pointArray = new google.maps.MVCArray(heatData);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
}
</script>
load('visualization','1',{packages:['table']});
函数OnLoad(){
$.ajax({
类型:“POST”,
url:“Default.aspx/CreateDatatable”,
数据:“{}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:初始化
});
}
var图、点阵列、热图;
函数初始化(响应){
var obj=$.parseJSON(response.d);
var heatData=新数组();
对于(变量i=0;i
伙计们,这与JSON字符串长度限制有关。我修复了它,但在web.config