Ceci est ma première fois sur stackoverflow et de travailler avec Openlayers & Google Maps.OpenLayers Google Maps Projection Problème w/KML
J'ai parcouru différents sites & sites, y compris OpenLayers.org, pour résoudre mon problème. J'ai fait des recherches sur une combinaison de ce qui suit: Openlayers, google map projections, et mercator sphérique ... mais je n'ai pas trouvé de solution. Problème: Les données KML provenant d'un appel de service Web (func setDataSource) se déplacent lorsque j'effectue un zoom avant ou arrière sur la carte. Ma conjecture est que les projections dans mon code sont fausses ou mal placées. Je n'ai pas de fond sur les projections cartographiques il est donc difficile de digérer peut aider quelqu'un à la terminologie de cartographie en ligne :-(.?
//start here
var options = {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
numZoomLevels: 18,
maxResolution: 156543.0339,
maxExtent: new OpenLayers.Bounds(-20037508, -20037508,
20037508, 20037508)};
//*map = new OpenLayers.Map('map');
map = new OpenLayers.Map('map', options);
var gphy = new OpenLayers.Layer.Google(
"Google Street",
{'sphericalMercator':true});
// Add the background images via WMS
var bglayer = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'}, {'reproject': true});
//map.addLayer(bglayer);
map.addLayers([gphy, bglayer]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent(); //* Zoom all the way out, this command also initalizes the map
OpenLayers.Console.log("initialized");
}
function setDataSource() {
OpenLayers.Console.log("Setting data source to " + OpenLayers.Util.getElement('loc').value);
if (layer != undefined) {map.removeLayer(layer)};
if (selectControl != undefined) {map.removeControl(selectControl)};
// Encode the destination url as a parameter string.
var params = OpenLayers.Util.getParameterString({url:OpenLayers.Util.getElement('loc').value})
// Make the http request to the transformer, with the destination url as a parameter.
layer = new OpenLayers.Layer.GML("KML", transformerURL + params,
{
format: OpenLayers.Format.KML,
formatOptions: {
extractStyles: true,
extractAttributes: true,
maxDepth: 2,
//projection: new OpenLayers.Projection("EPSG:4326"),
}
});
map.addLayer(layer);
Merci !!!
Les gars et les filles sur [GIS.stackexchange.com] (http://gis.stackexchange.com/) trouveront probablement plus facile de vous aider la prochaine fois .. – DefenestrationDay
peut-être vous pouvez m'aider avec ce poblem [OpenLayers Google Map Borders] [1] [1]: http://stackoverflow.com/questions/29120583/how-to-remove-countries-borders-from-a-google- map-integrated-in-opnelayers –