# Value cannot be null. Parameter name:key

**URL:** <https://community.thinkgeo.com/t/value-cannot-be-null-parameter-name-key/2631>\
**Category:** WinForms\
**Created:** [November 4, 2015, 7:07am UTC](https://community.thinkgeo.com/t/value-cannot-be-null-parameter-name-key/2631 "2015-11-04T07:07:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Khalid](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/k/aeb1de/32.png) [@Khalid](https://community.thinkgeo.com/u/Khalid)\
**Post date:** [November 4, 2015, 7:07am UTC](https://community.thinkgeo.com/t/value-cannot-be-null-parameter-name-key/2631/1 "2015-11-04T07:07:40Z")

</div>

HI  
  
  
  
I&nbsp;am&nbsp;trying&nbsp;to&nbsp;implement&nbsp;a&nbsp;WMTS&nbsp;overlay&nbsp;but&nbsp;an&nbsp;error&nbsp;message&nbsp;occurs&nbsp;on&nbsp;screen&nbsp;where&nbsp;the&nbsp;overlay&nbsp;is&nbsp;meant&nbsp;to&nbsp;be&nbsp;saying  
  
&nbsp;"Value&nbsp;cannot&nbsp;be&nbsp;null.&nbsp;Parameter&nbsp;name:key"  
  
  
  
however&nbsp;I&nbsp;have&nbsp;added&nbsp;the&nbsp;parameter,&nbsp;below&nbsp;is&nbsp;my&nbsp;code

> `mapControl.CurrentExtent = new RectangleShape(-13685148.3015252, 5216681.83506644, -13685148.3015252, 5216681.83506644);`  
> `           ``WmtsOverlay overlay = new WmtsOverlay(new Collection<``Uri``> { new Uri("<a href="api.ordnancesurvey.co.uk/mapping_api/service/wmts/apikey=xxxxxxxxxxxxxxxxxxxxxxxxx">api.ordnancesurvey.co.uk/ma…xxxxxxxxxx</a>") });`  
> `           ``overlay.Parameters.Add("LAYER", "Zoom Map Auto");`  
> `           ``overlay.Parameters.Add("STYLE", "default");`  
> `           ``overlay.Parameters.Add("FORMAT", "image/jpeg");`  
> `           ``overlay.Parameters.Add("TILEMATRIXSET", "EPSG:27700");`  
> `           ``overlay.Parameters.Add("SERVICE", "WMTS");`  
> `           ``overlay.Parameters.Add("REQUEST", "GetTile");`  
> `           ``overlay.Parameters.Add("VERSION", "1.0.0");`  
> `           ``overlay.Parameters.Add("TILEMATRIX", "ESPG:27700:0");`  
> `           ``//overlay.Parameters.Add("TILEROW", "1");`  
> `           ``//overlay.Parameters.Add("TILECOLE", "1");`  
> `           ``overlay.Parameters.Add("KEY", "Egvboe9xrM4QEMJoD1IsQTEEFTAeMnwp");`  
> &nbsp;  
> &nbsp;  
> `           ``mapControl.MapUnit = GeographyUnit.Meter;`  
> `           ``//GetIntersectingRowColumnRange(mapControl.CurrentExtent)`  
> `          `&nbsp;  
> &nbsp;  
> `           ``mapControl.Overlays.Clear();`  
> `           ``mapControl.Overlays.Add(overlay);`  
> `           ``mapControl.Refresh();`  
> `       ``}`

---

<div class="post-metadata">

**Author:** ![Khalid](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/k/aeb1de/32.png) [@Khalid](https://community.thinkgeo.com/u/Khalid)\
**Post date:** [November 4, 2015, 8:29am UTC](https://community.thinkgeo.com/t/value-cannot-be-null-parameter-name-key/2631/2 "2015-11-04T08:29:30Z")

</div>

What&nbsp;is&nbsp;the&nbsp;difference&nbsp;between&nbsp;WMTSLayer&nbsp;and&nbsp;WMTSOverlay?&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards&nbsp;  
&nbsp;Khalid

---

<div class="post-metadata">

**Author:** ![Ethan](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ethan/32/19964_2.png) [@Ethan](https://community.thinkgeo.com/u/Ethan)\
**Post date:** [November 5, 2015, 3:51am UTC](https://community.thinkgeo.com/t/value-cannot-be-null-parameter-name-key/2631/3 "2015-11-05T03:51:48Z")

</div>

Hi&nbsp;Khalid,&nbsp;  
&nbsp;&nbsp;  
&nbsp;The&nbsp;WMTSOverlay&nbsp;is&nbsp;a&nbsp;wrapper&nbsp;for&nbsp;WmtsLayer.&nbsp;  
&nbsp;&nbsp;  
&nbsp;WmtsOverlay&nbsp;is&nbsp;contained&nbsp;in&nbsp;DesktopEdition&nbsp;but&nbsp;WmtsLayer&nbsp;is&nbsp;contained&nbsp;in&nbsp;Core.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Don&nbsp;
