Question

Someone pls fix this code for me. I cant show multiple pushpins :( Or give me some link about show pushpins. Ty :)

// Creat point
        GeoCoordinate p1 = new GeoCoordinate(21.0178, 105.8303);
        GeoCoordinate p2 = new GeoCoordinate(21.0076, 105.8414);
        // Show center map
        this.myPushpins.Center = p1;
        this.myPushpins.ZoomLevel = 13;
        // Creat Pushpins
        Pushpin pp = new Pushpin();
        // Creat MapOverLap
        MapOverlay overlay1 = new MapOverlay();
        overlay1.Content = pp;
        overlay1.GeoCoordinate = new GeoCoordinate(21.0178, 105.8303);
        MapOverlay overlay2 = new MapOverlay();
        overlay2.Content = pp;
        overlay2.GeoCoordinate = new GeoCoordinate(21.0076, 105.8414);
        // Creat Maplayer
        MapLayer layer = new MapLayer();
        layer.Add(overlay1);
        layer.Add(overlay2);
        myPushpins.Layers.Add(layer);
Was it helpful?

Solution

You are setting the content of both overylay1 and overylay2 to the same Pushpin object instance. You need to have two different instances of Pushpin. Try this code:

    // Creat point
    GeoCoordinate p1 = new GeoCoordinate(21.0178, 105.8303);
    GeoCoordinate p2 = new GeoCoordinate(21.0076, 105.8414);
    // Show center map
    this.myPushpins.Center = p1;
    this.myPushpins.ZoomLevel = 13;
    // Creat Pushpins
    //Pushpin pp = new Pushpin();
    // Creat MapOverLap
    MapOverlay overlay1 = new MapOverlay();
    overlay1.Content = new Pushpin();
    overlay1.GeoCoordinate = new GeoCoordinate(21.0178, 105.8303);
    MapOverlay overlay2 = new MapOverlay();
    overlay2.Content = new Pushpin();
    overlay2.GeoCoordinate = new GeoCoordinate(21.0076, 105.8414);
    // Creat Maplayer
    MapLayer layer = new MapLayer();
    layer.Add(overlay1);
    layer.Add(overlay2);
    myPushpins.Layers.Add(layer);

Or even better to have some function to display your pins

public void PinMap(Map map, GeoCoordinate geoPosition) {
    map.Center = geoPosition;
    map.ZoomLevel = 13;

    var mapOverlay = new MapOverlay();
    mapOverlay.Content = new Pushpin();
    mapOverlay.GeoCoordinate = geoPosition;

    var mapLayer = new MapLayer();
    mapLayer.Add(mapOverlay);

    map.Layers.Add(mapLayer);
}

PinMap(myMap, new GeoCoordinate(21.0178, 105.8303));
PinMap(myMap, new GeoCoordinate(21.0076, 105.8414));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top