FeatureLayer does not accept WGS84 ( WKID 4326 )

5793
2
Jump to solution
03-27-2012 12:51 AM
RobEck
by
New Contributor II
Hello,

i want to display Points, witch are generated from PHP. I get this infortmation via AJAX / JSON.
This is my sample code, witch is cutted to the main thing. My problem ist, that the WGS 84 coordinates wont be accept by the ESRI Javascript API.

The Point on the MAP is allways in the Atlantic Ocean near to Africa. I thing the API still uses wkid: 102100
What is my fault? I played with the code more than one day but i cant found a solution.

[PHP]
var myExtent = new esri.geometry.Extent(-10, 40, 35, 57, new esri.SpatialReference({wkid:4326}));

map = new esri.Map("mapDiv", {
    nav:true,
    extent:esri.geometry.geographicToWebMercator(myExtent)
});

var basemapURL= "http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"
var basemap = new esri.layers.ArcGISTiledMapServiceLayer(basemapURL);
map.addLayer(basemap);

infoTemplate_logger2=new esri.InfoTemplate("<h3>${Name}</h3>","mytest");


var featureCollection = {
    layerDefinition: {
      "geometryType": "esriGeometryPoint",
      "spatialReference" : {
            "wkid" : 4326
      },
      "drawingInfo": {
        "renderer": {
          "type": "simple",
          "symbol": {
            "type": "esriPMS",
            "url": "http://icons.iconarchive.com/icons/mart/glaze/128/log-icon.png",
            "contentType": "image/png",
            "width": 24,
            "height": 24
          }
        }
      },
      "fields": [
      {
          "name": "OBJECTID",
          "type": "esriFieldTypeOID",
          "alias": "OBJECTID"
      },
      {
        "name": "Name",
        "type": "esriFieldTypeString",
        "alias": "Name"
      }
      ]
    },
    "featureSet":{
       "geometryType":"esriGeometryPoint",
       "spatialReference":{
          "wkid":4326
       },
       "features":[
          {
             "geometry":{
                "x":8.55,
                "y":47.3666667
             },
             "attributes":{
                "OBJECTID":2,
                "Name":"Zürich",
             }
          }
       ]
    }
  };

  featureLayer = new esri.layers.FeatureLayer(featureCollection, {
    mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
    infoTemplate: infoTemplate_logger2,
  });


[/PHP]
0 Kudos
1 Solution

Accepted Solutions
RobEck
by
New Contributor II
You can convert from WGS84 to Web Mercator with esri.geometry.geographicToWebMercator.


Thanks, with this JS-Code all things are fine:

fs=FeatureSet

[PHP]                
$.each( fs.features, function(k, v){
    point=new esri.geometry.Point( v.geometry.x, v.geometry.y, new esri.SpatialReference({ wkid: 4326 }));
    point_merc = esri.geometry.geographicToWebMercator(point);
  
    v.geometry.x=point_merc.x;
    v.geometry.y=point_merc.y;                  
});
[/PHP]

View solution in original post

0 Kudos
2 Replies
derekswingley1
Frequent Contributor
You can convert from WGS84 to Web Mercator with esri.geometry.geographicToWebMercator.
0 Kudos
RobEck
by
New Contributor II
You can convert from WGS84 to Web Mercator with esri.geometry.geographicToWebMercator.


Thanks, with this JS-Code all things are fine:

fs=FeatureSet

[PHP]                
$.each( fs.features, function(k, v){
    point=new esri.geometry.Point( v.geometry.x, v.geometry.y, new esri.SpatialReference({ wkid: 4326 }));
    point_merc = esri.geometry.geographicToWebMercator(point);
  
    v.geometry.x=point_merc.x;
    v.geometry.y=point_merc.y;                  
});
[/PHP]
0 Kudos