Gjeokodim i mbrapshtë me Google dhe Excel

Ky tutorial i shkurtë do t’iu mundësojë se si të punoni me skedarët Excel direkt nga C# përmes librarisë interop të Excel që ofrohet nga Microsoft. Pastaj, në të shkruan edhe si të shkruhet në qeliza të dëshiruara të skedarit Excel.

Gjithashtu, në këtë tutorial do të mësohet se si të konsumohet një JSON dhe të parsohet në objekt të C#.

Nëse ju lind nevoja të kërkoni informata të ndryshme nga Google Maps si për shembull e keni emrin e qytetit por nuk e dini se nga cili vend vjen atëherë ekziston mundësia që të ndërlidhet kodi i C# me Google Maps dhe të bësh kërkimin e të dhënave të vendit.

Së pari e përgatit një listë në Excel
Imazhi1

Pastaj duhet të shkarkohet NewtonJson pakoja që mund të instalohet edhe përmes PowerShell por edhe në mënyrën manuale por duhet të keni parasysh që kur e zgjidhni librarinë (DLL) përkatëse duhet të përkojë me versionin e .Net kornizës në të cilën punohet aplikacioni.

Instalimi përmes PowerShell Nuget. Së pari përmes menysë Tools e zgjedhni NuGet Package Manager dhe pastaj Package Manager Console

image2
Dhe më pas paraqitet pamja si në vijë dhe duhet shkruar teksti ”

Install-Package Newtonsoft.Json"

image3

Dhe pastaj e shtypni Enter.

Pas shkarkimit të pakos duhet të shkoni te “References” te Project edhe pastaj “Add Reference”

image5

Pasi që të klikojmë te ky opsion te kutia e kërkimit e kërkojnë për libraritë me emrin Excel por libraria duhet të jetë interop që do të na lejojë mundësinë e ndërveprimit mes skedarit Excel dhe  punëve tona.

 

Image6

Pastaj na del kështu pasi që të kemi zgjedhur versionin e fundit të librarisë interop dhe shtypin pullën OK. Pastaj na listohet në këtë mënyrë.
Nëse edhe libraria Newtonsoft.Json mungon nga këtu atëherë vazhdohet si në hapin paraprak por këtu klikojmë Browse dhe pastaj e zgjedhim librarinë e kompiluar në versionin përkatës. Në këtë projekt është përdorur korniza e punës .Net 4.5.2.

image7

Kodimit të projektit.

Për të na lehtësuar punën e kodimit së pari e marrim JSon-in dhe e kthejmë në C#.

https://maps.googleapis.com/maps/api/geocode/json?address=Tiran%C3%AB&sensor=false&key={për ta pasur të lehtë punën e gjeneroni një qelës nga Google Maps API dhe e aktivizoni Geocoding te një projekt të juajin ose e krijoni një projekt aty}

Krijimi i qelësit për shërbimit të Google Geocoding bëhet në këtë mënyrë

Së pari hapet adresa

https://console.developers.google.com/apis/dashboard?

Pastaj, ju kërkon të kyçeni me llogari të Gmail dhe pastaj mund të shkoni te projektet tuaja ose të krijoni projekt të ri.

image8

Pastaj ju paraqitet kjo pamje dhe duhet të klikoni te “Credentials”

image9

Pasi të kemi klikuar Credentials na paraqitet një formë me ca shpjegime por ju duhet të klikoni te Create Credentials dhe pastaj ta zgjedhin API key

image10

Dhe pastaj duhet të klikoni Browser Key.image11

Na paraqitet pamja në vijim:

image12

Dhe këtu duhet të klikojmë Create dhe na gjenerohet si në vijim:

image13

Kodin e gjeneruar duhet ta kopjojmë e kjo mund të bëhet përmes ikonës në të djathtë të qelësit. Pastaj ky kod duhet të vendoset te pjesa e key=

https://maps.googleapis.com/maps/api/geocode/json?address=Tiranë&sensor=false&
key=AIzaSyDqSlwh58jd8dbz18h5qn15v59sqYR-3vc

Dhe pastaj mund të bëjmë kërkesa që të na jep të dhënat e duhura:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Tiranë",
               "short_name" : "Tiranë",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Tiranë",
               "short_name" : "Tiranë",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Qarku i Tiranës",
               "short_name" : "Qarku i Tiranës",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Shqipëria",
               "short_name" : "AL",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Tiranë, Shqipëria",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 41.366841,
                  "lng" : 19.8820781
               },
               "southwest" : {
                  "lat" : 41.2951234,
                  "lng" : 19.7535681
               }
            },
            "location" : {
               "lat" : 41.3275459,
               "lng" : 19.8186982
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 41.366841,
                  "lng" : 19.8820781
               },
               "southwest" : {
                  "lat" : 41.2951234,
                  "lng" : 19.7535681
               }
            }
         },
         "place_id" : "ChIJ28X6cAQxUBMRIDdlEK-SAAQ",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Shënim: Që të mund ta merrni këtë së pari duhet të aktivizoni API e Geocoding

image14image15

Pjesa e dytë:
Këtu e kthejmë objektin JSON në klasa të C# me anë të uebfaqes

http://json2csharp.com/

Dhe fitohet kjo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ReversGeoCodeByCity
{


public class AddressComponent
{
public string long_name { get; set; }
public string short_name { get; set; }
public List<string> types { get; set; }
}


public class Northeast
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Southwest
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Bounds
{
public Northeast northeast { get; set; }
public Southwest southwest { get; set; }
}


public class Location
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Northeast2
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Southwest2
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Viewport
{
public Northeast2 northeast { get; set; }
public Southwest2 southwest { get; set; }
}


public class Geometry
{
public Bounds bounds { get; set; }
public Location location { get; set; }
public string location_type { get; set; }
public Viewport viewport { get; set; }
}


public class Result
{
public List<AddressComponent> address_components { get; set; }
public string formatted_address { get; set; }
public Geometry geometry { get; set; }
public string place_id { get; set; }
public List<string> types { get; set; }
}


public class RootObject
{
public List<Result> results { get; set; }
public string status { get; set; }
}


}

Këtë e ruajmë për shembull si skedarë .cs me merin Objects.cs.

 

Dhe rezultati

image16

I tërë kodi mund të shkarkohet nga këtu:

Kodi i projekti

Advertisements

Posted by amurati

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s