缓存基于视图端口的地理查询

时间:2010-04-23 11:17:25

标签: google-maps caching geospatial

我有一个带有巨型Google地图的网络应用程序。当用户在地图上平移和缩放时,通过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 个答案:

答案 0 :(得分:0)

你可能会以错误的方式解决这个问题。尝试将图层作为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