2012-06-04 4 views
2

Я хочу, чтобы реализовать этот пример http://api.geoext.org/1.1/examples/feature-grid.html сделанных из geoext и OpenLayers, что сетка функции заполняются из файла GeoJSONUTM и GeoJSON в OpenLayers

В моем развитии у меня есть GeoJSON файл с форматом UTM, это единственное особенность моего файла (координаты UTM)

{"geometry": {"type": "Point", "coordinates": [7535169.36, 402844.172]}, "type": "Feature", "properties": {"NOMBRE": "LA VICTORIA", "CODIGO": "1702"}, "id": "1702"} 

Я попытался показать точки в своем коде, но я ничего не вижу, это мой код

// create feature store, binding it to the vector layer 
      store = new GeoExt.data.FeatureStore({ 
       layer: vecCiudades, 
       fields: [ 
        { name: 'NOMBRE' }, 
        { name: 'CODIGO' } 
       ], 
       proxy: new GeoExt.data.ProtocolProxy({ 
        protocol: new OpenLayers.Protocol.HTTP({ 
         url: "data/summits.json", 
         format: new OpenLayers.Format.GeoJSON({ 
          ignoreExtraDims: true, 
          internalProjection: new OpenLayers.Projection("EPSG:900913"), 
          externalProjection: new OpenLayers.Projection("EPSG:4326") 
         }) 
        }) 
       }), 
       autoLoad: true 
      }); 

, как вы можете видеть, я попытался указать внутреннюю и внешнюю проекцию хранилища функций, моя реализация выглядит как пример ссылки, упомянутой выше, но когда я выбираю город, карта находится в неправильном месте (место показано вблизи южного полюса, но он должен быть рядом с южной америки)

заранее спасибо

ответ

0

по какой причине FeatureStore ..? Просто определить слой следующим образом:

var vecCiudades = new OpenLayers.Layer.Vector('MyLayer', { 
    strategies:[new OpenLayers.Strategy.BBOX()], 
    isBaseLayer:false, 
    projection:new OpenLayers.Projection("EPSG:900913"), 
    styleMap:new OpenLayers.StyleMap(null), 
    transitionEffect:'resize', 
    protocol:new OpenLayers.Protocol.HTTP({ 
     url: "data/summits.json", 
     format:new OpenLayers.Format.GeoJSON({ 
      ignoreExtraDims:true 
     }), 
     readWithPOST:false, 
     updateWithPOST:false, 
     srsInBBOX:true 
    }) 
}); 

Также зарегистрировать следующее событие на карте:

map.events.register("moveend", this, function (e) { 
    vecCiudades.refresh({force:true}); 
}); 

Это будет перечитать GeoJSON в любое время переместить или увеличенную карту и запрос будет содержать ограничительную рамку видимой области, так что вы можете только отправить функции, которые будут видны не всем из них.

Смежные вопросы