Merhaba arkadaşlar bugün sizlere google api lerini kullanarak küçük bir google map uygulaması yapacağım. Ayrıca yaptığımız uygulamayı crm de firma varlığına entegre ederek database den enlem ve boylamı çekerek marker aracılığıyla haritada firmanın adresini ayrıntılarıyla göstereceğim. Şimdi uygulamayı yazmayı başlayalım. Öncelikle visual stadio açarak yeni bir web proje açalım ve ismine GoogMapWebSite diyelim.
Daha sonra cs dosyasını açarak kodları yazmaya başlayalım. Comment out yaptığım yerlerde bazı açıklamalar yaptım.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["oid"].ToString();//burada firmanın guid’ini alıyoruz
SqlConnection conn = new SqlConnection("Data source=MSCRMDYNAMICS; initial catalog=ERCAN_MSCRM; Integrated Security=SSPI;");
string sql = "SELECT new_longitude,new_latitude FROM account WITH(NOLOCK) where accountId='" + id + "' and deletionstatecode<>2 ";
//sql query’mi yazıp enlem ve boylamı çekiyorum.
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
try
{
Double a = Convert.ToDouble(ds.Tables[0].Rows[0]["new_latitude"]);
Double b = Convert.ToDouble(ds.Tables[0].Rows[0]["new_longitude"]);
/*Enlem ve boylam boş değil ise aspx sayfasını source’una yazdığım initialize adlı bir fonksiyona yoluyorum, boş ise hata mesajı veriyorum.*/
if ((ds.Tables[0].Rows[0]["new_latitude"] != DBNull.Value) && (ds.Tables[0].Rows[0]["new_longitude"] != DBNull.Value))
{
string javascript = "";
RegisterStartupScript("Close", javascript);
}
}
catch
{
string javascript = "";
RegisterStartupScript("Close", javascript);
}
}
}
Şimdi sıra geldi aspx sayfımıza source’una yazacağımız kodlara
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Ercan’s Maptitle>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">script>
<script type="text/javascript">
var geocoder;
var map;
function initialize(a,b) {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(a,b);
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP//burada yap
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title:"The Account Address !"
});
}
script>
head>
<body style="margin:0px; padding:0px;" >
<form id="form1" runat="server">
<div id="map_canvas" style="width:100%; height:100%">
<asp:ScriptManager ID="ScriptManager1" runat="server">
asp:ScriptManager>
div>
form>
body>
html>
Son olarak yaptığımız uygulamayı bir button aracılığıyla crm’e ekleyeceğim. İlk olarak ISV.Config dosyasını export ediyoruz.
ve dosyayı visual stadio ile açıp aşağıdaki kodu ekliyoruz.
<Button JavaScript="var id= crmForm.ObjectId; window.open('/ISV/GoogMapWebSite/Default.aspx?oid='+id,'mywindow', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no,width=473,height=322');" PassParams="1" WinParams="" WinMode="0">
<Titles>
<Title LCID="1033" Text="Google Map" />
Titles>
<ToolTips>
<ToolTip LCID="1033" Text="Google Map" />
ToolTips>
Button>
Son olarak kodu ekleyip save edip dosyayı import ediyorum.
Şimdi test edelim bu arada ekranda button görünmüyorsa ayarlardan (settings) sistem ayarlarına giriyoruz daha sonra özeleştirmeyi tıklıyoruz. Ve aşağıda gösterdiğim değerleri seçip tamam a tıklıyoruz.
Bu işlemi bitirdikden sonra altaki gibi bir görüntü ortaya çıkacaktır.
Umarım işinize yarar başka bir yazımda görüşmek dileğiyle........
Hiç yorum yok:
Yorum Gönder