2016-06-24 14 views
-2

Ich verwende das ArcGIS Javascrit SDK für einen einfachen Benutzerfall, bei dem einige Markierungen mit Text auf einer Karte platziert werden. Ich bin in der Lage, den Marker hinzuzufügen, aber ich stoße auf Probleme beim Einfügen von Text auf diesem Marker.Hinzufügen von Text zu ArcGIS Javascript-Layer

Hier ist mein Code:

require([ 
    "esri/map", 
    "esri/dijit/BasemapToggle", 
    "esri/dijit/LocateButton", 
    "esri/geometry/Point", 
    "esri/symbols/SimpleMarkerSymbol", 
    "esri/symbols/SimpleLineSymbol", 
    "esri/symbols/Font", 
    "esri/symbols/TextSymbol", 
    "esri/Color", 
    "esri/graphic", 
    "esri/layers/GraphicsLayer", 
    "dojo/domReady!" 
], function(
    Map, BasemapToggle, LocateButton, Point, SimpleMarkerSymbol, Font, TextSymbol, SimpleLineSymbol, Color, Graphic, GraphicsLayer 
) { 
     map = new Map("map", { 
     center: [mapval[0][2],mapval[0][1]], 
     zoom: 18, 
     basemap: "streets" 
     }); 

     map.on("load", function() { 
      var gl = new GraphicsLayer(); 
      var font = new Font("20px", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLDER); 
      for (var i=0;i<mapval.length;i++){ 
        var p = new Point(mapval[i][2], mapval[i][1]); 
        var s = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 20, 
         new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, 
         new Color([255,0,0]), 1), 
         new Color([0,255,0,0.25])); 
        var g = new Graphic(p, s); 
        g.setAttributes({ 
         name: mapval[i][0] 
        }); 
        gl.add(g); 

        var t = new TextSymbol(mapval[i][0],font, new Color([0, 0, 0])); 
        var g2 = new Graphic(p, t); 
        gl.add(g2); 
      } 


      map.addLayer(gl);     
     }); 

    var toggle = new BasemapToggle({ 
    map: map, 
    visible: true, 
    basemap: "satellite" 
    }, "BasemapToggle"); 
    toggle.startup(); 

    var geoLocate = new LocateButton({ 
    map: map 
    }, "LocateButton"); 
    geoLocate.startup(); 

}); 
+0

Dieser Code wird nicht ausgeführt, da mapval nicht definiert ist. Wenn Sie dies aktualisieren könnten, um mapval einzuschließen und es in JSFiddle oder Codepen zu posten, dann könnte es für Leute einfacher sein, es auszuprobieren und Ihnen zu helfen, das Problem zu finden. –

+0

guten Fang. mapval war ein mehrdimensionales Array, das im Code höher gesetzt wurde: {[Title, Lat, Lng]} – Nate23VT

Antwort

0

Die SimpleLineSymbol in der erfordern in der falschen Stelle ist. Sobald das korrigiert wurde, um mit den Funktionen übereinzustimmen, wurde das Etikett angezeigt.