基于OpenLayers JSON的结果与弹出窗口

时间:2011-10-05 17:20:26

标签: javascript jquery openlayers

我已经制作了代码,以便在地图上显示黄色点,从外部文件加载coords和其他一些事实。

这是资源文件

var sites = [{id:1269209,geometry:{ type:"Point",lat:1,lon: 1},properties:{siteName:"Yttern",parentId:1269209,siteType:2}}];

这是查看它们的脚本

var vectorLayer = new OpenLayers.Layer.Vector("Overlay");
$.getScript('test.js',function(){
    for(var i = 0; i < sites.length; i++)
    {
        var site = sites[i];
        var feature = new OpenLayers.Feature.Vector(
        new OpenLayers.Geometry.Point(site.geometry.lon,site.geometry.lat));
    vectorLayer.addFeatures(feature);
}
    map.addLayer(vectorLayer);

});

我想知道的是如何使用JSON文件中的内容为每个标记创建一个可挂接的弹出窗口? 是否也可以仅在用户通过缩放级别14时发出请求?


现在,我已经修复了当zoom超过10时启动的功能

map.events.register("moveend", null, function(){

      if(map.zoom >= 10)
      {
        var bounds = map.getExtent();
        var ne = new OpenLayers.LonLat(bounds.right,bounds.top).transform(map.getProjectionObject(),new OpenLayers.Projection("EPSG:4326"));
        var sw = new OpenLayers.LonLat(bounds.left,bounds.bottom).transform(map.getProjectionObject(),new OpenLayers.Projection("EPSG:4326"));
        var vectorLayer = new OpenLayers.Layer.Vector("Layer");
        $.getScript('ajax.php?a=markers&type=javascript&sw=('+sw.lon+','+sw.lat+')&ne=('+ne.lon+','+ne.lat+')',function(){
        //$.getScript('test.js',function(){
            for(var i = 0; i < sites.length; i++)
            {
                var site = sites[i];
                var latlon = new OpenLayers.LonLat(site.geo.lon,site.geo.lat);
                var feature = new OpenLayers.Feature.Vector(
                    new OpenLayers.Geometry.Point(latlon)
                );
                vectorLayer.addFeatures(feature);
            }
            map.addLayer(vectorLayer);
        });
        }
    });

但我仍然没有在地图上找到标记,是不是错了? markers.php的一个结果是ajax.php?a = markers ....

var sites = [{siteId:'9',siteName:'Hårleby',geo:{lon:11.641452694427471,lat:58.15782686109065},fact:{parentSiteId:0,county:'Orust'}}]; 

结果可能是投影吗?请帮忙。

0 个答案:

没有答案