缓存基于视口的地理查询
Posted
技术标签:
【中文标题】缓存基于视口的地理查询【英文标题】:Caching view-port based Geo-queries 【发布时间】:2010-04-23 11:17:24 【问题描述】:我有一个网络应用程序,里面有一张巨大的谷歌地图。当用户在地图上平移和缩放时,点会通过 AJAX 调用动态加载,其中包括视口边界(NE 和 SW 角坐标)和一些其他各种参数。
如何缓存这些积分请求?问题是参数是高度可变的并且(最差的)不是离散的,即带有很多小数位的浮点数。我正在使用 ASP.NET-MVC/C#/LINQ2SQL/SQL-Server,但问题与该平台无关。
这是相关方法的签名:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Data(string date, string categories,
string ne_lat, string ne_lng,
string sw_lat, string sw_lng)
【问题讨论】:
【参考方案1】:您可能以错误的方式处理此问题。尝试将图层加载为 GGeoXML(或 KML),而不是作为标记的自定义请求,然后 Google API 将处理要显示的点和缓存。
var myLatlng = new google.maps.LatLng(49.496675,-102.65625);
var myOptions =
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var georssLayer = new google.maps.KmlLayer('http://api.flickr.com/services/feeds/geo/?g=322338@N20〈=en-us&format=feed-georss');
georssLayer.setMap(map);
见http://code.google.com/apis/maps/documentation/v3/examples/layer-georss.html
如果您需要刷新您的积分,请在 URL 的末尾添加一个(假的或时间戳)参数
http://myhost.com/file.kml?rand=1
【讨论】:
以上是关于缓存基于视口的地理查询的主要内容,如果未能解决你的问题,请参考以下文章
基于并行下载算法和动态缓存池的高性能WebGIS数据存取与显示关键技术研究