<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to use [AGSMutablePoint offsetByX:xOffset y:yOffset] in ArcGIS Runtime SDK for iOS Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293270#M2631</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In addition.&amp;nbsp; Create two points by offsetY: 1000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AGSPoint *p1 = [AGSPoint pointWithX:webMercatorX y:webMercatorY spatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AGSMutablePoint *p2 = [AGSMutablePoint pointWithX:p1.x y:p1.y spatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[p2 offsetByX:0 y:1000];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then calculate the distance between p1 and p2:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len1 = [p1 distanceToPoint:p2];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSMutablePolyline *line = [[AGSMutablePolyline alloc] initWithSpatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [line addPathToPolyline];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [line addPointToPath:p1];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [line addPointToPath:p2];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSGeometryEngine *engine = [AGSGeometryEngine defaultGeometryEngine];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len2 = [engine lengthOfGeometry:line];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len3 = [engine geodesicLengthOfGeometry:line inUnit:AGSSRUnitMeter];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len4 = [engine shapePreservingLengthOfGeometry:line inUnit:AGSSRUnitMeter];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The result is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;len1 = len2 = 1000 meters&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;len3 = len4 = 776.44727 meters&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In fact, the real result should be 776.44727 (I measured it in the outdoors, the latitude of my GPS position is 39.082718274606). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So why &lt;/SPAN&gt;&lt;SPAN style="color:#b22222;"&gt;offsetY:1000 results 776.44727 &lt;/SPAN&gt;&lt;SPAN&gt;? And how can I get the &lt;/SPAN&gt;&lt;SPAN style="color:#b22222;"&gt;real 1000 meters offset.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 11 Oct 2013 11:45:35 GMT</pubDate>
    <dc:creator>JamesZhang</dc:creator>
    <dc:date>2013-10-11T11:45:35Z</dc:date>
    <item>
      <title>How to use [AGSMutablePoint offsetByX:xOffset y:yOffset]</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293269#M2630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;[AGSMutablePoint offsetByX:xOffset y:yOffset]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The SDK says:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xOffset : The offset along x coordinate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;yOffset : The offset along y coordinate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What does offset mean exactlly. Does it mean the International Meter Unit.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I want to add 1000 meters in y coordinate.&amp;nbsp; Here is my code, is it correct:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AGSMutablePoint *point = [AGSMutablePoint pointWithX:webMercatorX y:webMercatorY spatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&amp;nbsp;&amp;nbsp;&amp;nbsp; //Web Mercator &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[point offsetByX:0 y:1000];&amp;nbsp;&amp;nbsp; //add 1000 meters in y coordinate&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 07:31:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293269#M2630</guid>
      <dc:creator>JamesZhang</dc:creator>
      <dc:date>2013-10-11T07:31:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to use [AGSMutablePoint offsetByX:xOffset y:yOffset]</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293270#M2631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In addition.&amp;nbsp; Create two points by offsetY: 1000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AGSPoint *p1 = [AGSPoint pointWithX:webMercatorX y:webMercatorY spatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AGSMutablePoint *p2 = [AGSMutablePoint pointWithX:p1.x y:p1.y spatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[p2 offsetByX:0 y:1000];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then calculate the distance between p1 and p2:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len1 = [p1 distanceToPoint:p2];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSMutablePolyline *line = [[AGSMutablePolyline alloc] initWithSpatialReference:[AGSSpatialReference spatialReferenceWithWKID:WKID_WGS_1984_WEB_MERCATOR_AUXILIARY_SPHERE]];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [line addPathToPolyline];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [line addPointToPath:p1];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [line addPointToPath:p2];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSGeometryEngine *engine = [AGSGeometryEngine defaultGeometryEngine];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len2 = [engine lengthOfGeometry:line];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len3 = [engine geodesicLengthOfGeometry:line inUnit:AGSSRUnitMeter];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; float len4 = [engine shapePreservingLengthOfGeometry:line inUnit:AGSSRUnitMeter];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/PHP]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The result is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;len1 = len2 = 1000 meters&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;len3 = len4 = 776.44727 meters&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In fact, the real result should be 776.44727 (I measured it in the outdoors, the latitude of my GPS position is 39.082718274606). &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So why &lt;/SPAN&gt;&lt;SPAN style="color:#b22222;"&gt;offsetY:1000 results 776.44727 &lt;/SPAN&gt;&lt;SPAN&gt;? And how can I get the &lt;/SPAN&gt;&lt;SPAN style="color:#b22222;"&gt;real 1000 meters offset.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 11:45:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293270#M2631</guid>
      <dc:creator>JamesZhang</dc:creator>
      <dc:date>2013-10-11T11:45:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to use [AGSMutablePoint offsetByX:xOffset y:yOffset]</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293271#M2632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Finally, I got the relationship between these values:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;offset * cos(latitude) = real distance&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1000 * cos(DEGREES_TO_RADIANS(39.082718274606)) = 776.236 &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yeah~&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 23:19:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/how-to-use-agsmutablepoint-offsetbyx-xoffset-y/m-p/293271#M2632</guid>
      <dc:creator>JamesZhang</dc:creator>
      <dc:date>2013-10-11T23:19:50Z</dc:date>
    </item>
  </channel>
</rss>

