I am trying to implement the ability for a user to draw and refine a polygon on a Bing Map control.
I have added a shape layer, and overridden the tap events to draw a simple polygon and that all works perfectly. I would like to further refine the control so that a user can drag and drop any of Location objects of the drawn polygon to alter its shape, but I’m not having any luck.
I have tried to add a MapItemControl, bound to the Locations property of my polygon, but without success – I don’t see the pins appear on the map, even though my polygon does render correctly. Presumably the Locations collection isn’t notifying the UI of any changes to the collection, so I may have to maintain a separate collection for these pins.
Once I get this going, however, I still need to be able to drag and drop the pins around to modify the polygon. Has anyone implemented this on Windows 8 that could share some thoughts, please?
EDIT
I now have my pins showing the Locations collection on the map. I’d ideally like to tie these back to the Locations collection of the polygon, but beggars can’t be choosers. I now just need to be able to drag the pins around.
I added a drag handle module to the polygon in order to edit each point in the polygon. This is the walk-through I used.
Drag Handle Module
This is for version 7.0. Not sure which version you are using, but it is easily adaptable.
Edit I did this in javascript/html. Just noticed you tagged this as windows 8. Curious, are you making a silver-light control for windows 8 phones?
WPF C# Solution
Here is what I came up with and it is very easy to implement, all you need to do is hook my event onto your
MapPolygonobject. The idea behind the code, is once you click on the polygon, we place a pushpin (which we create events so that we can drag it) at each vertice on the polygon. As we drag and drop each pushpin we adjust the polygon.Locations as applicable.And a way to exit the resize event, I choose to just hook onto the key down and used ‘esc’ to stop editing, but you can do this on right click or any other event you choose to. All your doing is clearing
pushPinVerticeslist and resetting event variables.As for the resource to overwrite the pushpin icon, I just used an
ImageBrushan made a small white square. Note you may need to adjust theMarginproperty depending on how long / wide you make your marker. This is because generally the pushpin is anchored above the location by default.