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
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
Dhe më pas paraqitet pamja si në vijë dhe duhet shkruar teksti ”
Install-Package Newtonsoft.Json"
Dhe pastaj e shtypni Enter.
Pas shkarkimit të pakos duhet të shkoni te “References” te Project edhe pastaj “Add Reference”
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.
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.
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.
Pastaj ju paraqitet kjo pamje dhe duhet të klikoni te “Credentials”
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
Dhe pastaj duhet të klikoni Browser Key.
Na paraqitet pamja në vijim:
Dhe këtu duhet të klikojmë Create dhe na gjenerohet si në vijim:
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
Pjesa e dytë:
Këtu e kthejmë objektin JSON në klasa të C# me anë të uebfaqes
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
I tërë kodi mund të shkarkohet nga këtu: