# Using osm map

**URL:** <https://community.thinkgeo.com/t/using-osm-map/3735>\
**Category:** WPF\
**Created:** [November 10, 2014, 12:46am UTC](https://community.thinkgeo.com/t/using-osm-map/3735 "2014-11-10T00:46:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Burning](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/b/edb3f5/32.png) [@Burning](https://community.thinkgeo.com/u/Burning)\
**Post date:** [November 10, 2014, 12:46am UTC](https://community.thinkgeo.com/t/using-osm-map/3735/1 "2014-11-10T00:46:01Z")

</div>

&nbsp;it&nbsp;is&nbsp;succeed,but&nbsp;I&nbsp;don’t&nbsp;need&nbsp;&nbsp;GeographyUnit.Meter,I&nbsp;need&nbsp;use&nbsp;GeographyUnit.DecimalDegree.&nbsp;Can&nbsp;you&nbsp;help&nbsp;me.  
  
private&nbsp;void&nbsp;WpfMap\_Loaded(object&nbsp;sender,&nbsp;RoutedEventArgs&nbsp;e)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.BackgroundOverlay.BackgroundBrush&nbsp;=&nbsp;new&nbsp;GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.MapUnit&nbsp;=&nbsp;GeographyUnit.Meter;  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenStreetMapOverlay&nbsp;osmOverlay&nbsp;=&nbsp;null;  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osmOverlay&nbsp;=&nbsp;new&nbsp;OpenStreetMapOverlay();  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osmOverlay.IsVisible&nbsp;=&nbsp;true;  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.Overlays.Add(“Open&nbsp;Street&nbsp;Map”,&nbsp;osmOverlay);  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.CurrentExtent&nbsp;=&nbsp;new&nbsp;RectangleShape(-14136706,&nbsp;6440000,&nbsp;-5649000,&nbsp;952000);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}  
  
-------------------------------------------------------------------------------------------------------------------------------------------------------------  
  
private&nbsp;void&nbsp;WpfMap\_Loaded(object&nbsp;sender,&nbsp;RoutedEventArgs&nbsp;e)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.BackgroundOverlay.BackgroundBrush&nbsp;=&nbsp;new&nbsp;GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.MapUnit&nbsp;=&nbsp;GeographyUnit.DecimalDegree;  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenStreetMapOverlay&nbsp;osmOverlay&nbsp;=&nbsp;null;  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osmOverlay&nbsp;=&nbsp;new&nbsp;OpenStreetMapOverlay();  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osmOverlay.IsVisible&nbsp;=&nbsp;true;  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.Overlays.Add(“Open&nbsp;Street&nbsp;Map”,&nbsp;osmOverlay);  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wpfMap1.CurrentExtent&nbsp;=&nbsp;new&nbsp;RectangleShape(103.58,1.50,104.11,1.17);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}  
it&nbsp;don’t&nbsp;show&nbsp;osm&nbsp;map.&nbsp;Can&nbsp;you&nbsp;help&nbsp;me&nbsp;&nbsp;to&nbsp;modify&nbsp;it?

---

<div class="post-metadata">

**Author:** ![Troy](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@Troy](https://community.thinkgeo.com/u/Troy)\
**Post date:** [November 11, 2014, 4:00am UTC](https://community.thinkgeo.com/t/using-osm-map/3735/2 "2014-11-11T04:00:23Z")

</div>

Hi&nbsp;wang,  
  
  
  
The&nbsp;OpenStreetMapOverlay&nbsp;supports&nbsp;projection,&nbsp;would&nbsp;you&nbsp;please&nbsp;try&nbsp;the&nbsp;below&nbsp;codes&nbsp;to&nbsp;do&nbsp;the&nbsp;projection&nbsp;conversion?  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Proj4Projection&nbsp;proj4&nbsp;=&nbsp;new&nbsp;Proj4Projection();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj4.InternalProjectionParametersString&nbsp;=&nbsp;Proj4Projection.GetGoogleMapParametersString();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj4.ExternalProjectionParametersString&nbsp;=&nbsp;Proj4Projection.GetDecimalDegreesParametersString();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj4.Open();  
  
  
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenStreetMapOverlay&nbsp;osmOverlay&nbsp;=&nbsp;new&nbsp;OpenStreetMapOverlay();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osmOverlay.ProjectionFromSphericalMercator&nbsp;=&nbsp;proj4;  
Any&nbsp;other&nbsp;questions,&nbsp;don’t&nbsp;hesitate&nbsp;to&nbsp;let&nbsp;us&nbsp;know.  
  
Thanks,  
  
Troy

---

<div class="post-metadata">

**Author:** ![Burning](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/b/edb3f5/32.png) [@Burning](https://community.thinkgeo.com/u/Burning)\
**Post date:** [November 13, 2014, 8:31pm UTC](https://community.thinkgeo.com/t/using-osm-map/3735/3 "2014-11-13T20:31:32Z")

</div>

Hi&nbsp;Troy,&nbsp;  
  
  
  
Can&nbsp;you&nbsp;help&nbsp;me?  
  
I&nbsp;have&nbsp;a&nbsp;problem,&nbsp;I&nbsp;already&nbsp;init&nbsp;a&nbsp;osm&nbsp;map,and&nbsp;add&nbsp;a&nbsp;button&nbsp;in&nbsp;the&nbsp;map&nbsp;,order&nbsp;to&nbsp;realize&nbsp;that&nbsp;:  
if&nbsp;cilck&nbsp;button&nbsp;&nbsp;can&nbsp;draw&nbsp;&nbsp;a&nbsp;rectangle(&nbsp;only&nbsp;draw&nbsp;one&nbsp;rectangle)&nbsp;to&nbsp;set&nbsp;currentextent&nbsp;in&nbsp;the&nbsp;map,&nbsp;Like&nbsp;“Shift”&nbsp;+&nbsp;draw&nbsp;a&nbsp;rectangle&nbsp;function.  
  
how&nbsp;to&nbsp;reallize,I&nbsp;know:  
  
&nbsp;this.wpfMap1.TrackOverlay.TrackMode&nbsp;=&nbsp;TrackMode.Rectangle;&nbsp;//&nbsp;it&nbsp;can&nbsp;draw&nbsp;a&nbsp;rectangle,but&nbsp;it&nbsp;can&nbsp;draw&nbsp;a&nbsp;lot&nbsp;of&nbsp;rectangle.Don’t&nbsp;i&nbsp;need.  
  
  
  
1.&nbsp;how&nbsp;to&nbsp;get&nbsp;the&nbsp;rectangle?&nbsp;  
  
2.&nbsp;how&nbsp;to&nbsp;set&nbsp;currentextent?&nbsp;&nbsp;like&nbsp;“this.wpfMap1.CurrentExtent&nbsp;=&nbsp;rectangle.GetBoundingBox();”?&nbsp;this’s&nbsp;true?

---

<div class="post-metadata">

**Author:** ![Troy](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@Troy](https://community.thinkgeo.com/u/Troy)\
**Post date:** [November 17, 2014, 6:14am UTC](https://community.thinkgeo.com/t/using-osm-map/3735/4 "2014-11-17T06:14:04Z")

</div>

Hi&nbsp;Burning,  
  
  
  
Would&nbsp;you&nbsp;please&nbsp;try&nbsp;the&nbsp;below&nbsp;codes:

> `private void WpfMap_Loaded(object sender, RoutedEventArgs e)`  
> ` ``{`  
> `     ``wpfMap1.MapUnit = GeographyUnit.DecimalDegree;`  
> `     ``wpfMap1.CurrentExtent = new RectangleShape(-133.2515625, 89.2484375, 126.9046875, -88.290625);`  
> &nbsp;  
> `     ``WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay();`  
> `     ``wpfMap1.Overlays.Add(worldMapKitOverlay);`  
> &nbsp;  
> `     ``wpfMap1.TrackOverlay.TrackEnded += TrackOverlay_TrackEnded;`  
> &nbsp;  
> `     ``wpfMap1.Refresh();`  
> ` ``}`  
> &nbsp;  
> ` ``void TrackOverlay_TrackEnded(object sender, TrackEndedTrackInteractiveOverlayEventArgs e)`  
> ` ``{`  
> `     ``wpfMap1.TrackOverlay.TrackMode = TrackMode.None;`  
> `     ``wpfMap1.CurrentExtent = wpfMap1.TrackOverlay.TrackShapeLayer.InternalFeatures[0].GetBoundingBox();`  
> ` ``}`

  
Hope&nbsp;it&nbsp;helps&nbsp;and&nbsp;any&nbsp;questions,&nbsp;please&nbsp;let&nbsp;us&nbsp;know.  
  
Thanks,  
  
Troy
