[gelöst] PLZ Umkreissuche

15. Januar 2010 11:12

Hallo,

gibt es irgendeine Möglichkeit einer Umkreissuche?

z.B. Chef hat ein Kundentermin bei Fa. XYZ PLZ 78050
Natürlich will er dies mit anderen Termin und Kundenbesuchen verbinden und hätte nun gerne automatisch eine Liste erstellt, welche alle Firmendatensätze anzeigt, welche z.B. in dem Umkreis von 50 KM zu der genannten PLZ liegen.

Danke
Zuletzt geändert von tw-elektric am 18. Januar 2010 09:21, insgesamt 1-mal geändert.

Re: PLZ Umkreissuche

15. Januar 2010 11:39

Hallo,

im CRM direkt gibt es diese Möglichkeit nicht, es gibt aber diverse Beispiele im Internet, die entsprechende Möglichkeiten aufzeigen.

Als erstes benötigst du ein Ortswerk mit den Geocoordinaten der Orte, damit du überhaupt eine Umkreissuche durchführen kannst. Dann eine Routine, die mit dem Ortswerk die Umkreissuche durchführen kann, auch hier gibt es zahlreiche Beispiele im Internet.

Alternativ könntest du das auch z.B. mit Virtual Earth oder MapPoint durchführen. Diese können das mit entsprechender Programmierung ebenfalls.

Re: PLZ Umkreissuche

15. Januar 2010 12:25

Okay danke, dann überlege ich mir das mal.
Hast du zufällig einen informativen Link?

Re: PLZ Umkreissuche

15. Januar 2010 12:29

Hallo,

aktuell habe ich keinen Link. Ich würde einfach mal bei Bing nach Umkreissuche suche, da gibt es genügend Treffer.

Re: PLZ Umkreissuche

15. Januar 2010 14:35

Hallo Michael,

ich brauch mal deine Hilfe. Ich hab diesen Artikel gefunden und eingebunden: http://www.codeproject.com/KB/aspnet/Dy ... leMap.aspx

Beim öffen der Entität Firma habe ich diesen Code hinterlegt:
Code:
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;

var googleMapurl=  "http://srv03/default.aspx?address=Sydney, NSW";

if(IsOnline())
{
   switch (crmForm.FormType)
   {
      case CRM_FORM_TYPE_CREATE:
   
               break;

      case CRM_FORM_TYPE_UPDATE:
           if (crmForm.all.address1_line1.DataValue != ""
          && crmForm.all.address1_city.DataValue != ""
          && crmForm.all.address1_postalcode.DataValue != "" )
{
           googleMapurl= "http://srv03/default.aspx?address=" +   crmForm.all.address1_line1.DataValue + " ," +  crmForm.all.address1_city.DataValue + ", " + crmForm.all.address1_postalcode.DataValue;
}
         
            break;
   }
}

alert (googleMapurl);
crmForm.all.tab2Tab.click();
crmForm.all.IFRAME_IFRAME_GoogleMap.src = googleMapurl;


Kommentiere ich die letzte Zeile aus, und lasse den Standard Wert anzeigen, welcher im IFRAME Eigenschaften fest hinterlegt ist, http://srv03/default.aspx?address=Sydney, NSW so bekomme ich die Googlekarte angezeigt.
Ersetze ich aber die URL mit meinen Daten, dann wird die URL als alert richtig angezeigt, aber ich sehe nur ein graues Feld, und keine Googlekarte.

Kopiere ich die URL in ein IE Fenster, so wird die Karte angezeigt...

Hast du eine Idee? Irgendwas an der Zuweisung der URL muss falsch sein.

Re: PLZ Umkreissuche

15. Januar 2010 14:43

Hallo,

ist natürlich schwierig, ohne dein default.aspx Seite zu kennen.

Was direkt auffällt ist, das du eine unterschiedliche Anzahl von Parametern in beiden Links verwendest. Funktioniert dein dynamischer Link, wenn du die gleichen Parameter wie im statischen Link verwendest?

Re: PLZ Umkreissuche

15. Januar 2010 15:05

Daran liegt es nicht. Meine Default.aspx ist so wie in dem Beispiel:
Code:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%--
this oage should be called using the url string format :-
http://yourhost/GoogleNewsShowIFrame/Default.aspx?address=268%20Haldon%20street%20Sydney,%20NSW
with one query string parameter named address as above example
--%>
<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>Google Maps JavaScript API v3 Example: Geocoding Simple</title>
<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() {
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var myOptions = {
            zoom: 15,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    }

    function setGoogleMapDomain(myDiv, domain) {
        var frames = myDiv.getElementsByTagName('iframe');
        if (frames.length > 0) {
            window.frames[frames[0].id].document.domain = domain;
        }
    }

    function codeAddress() {
        var xxx;
        if (document.URL.indexOf('?') == -1)
            xxx = "Syndey, NSW";
        else
            xxx = document.URL.substring(document.URL.indexOf('?') + 9, document.URL.length);
        xxx = xxx.replace(/%20/gi, ' ');
//        alert(xxx);
        var address = xxx;
        if (geocoder) {
            geocoder.geocode({ 'address': address }, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    var marker = new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location
                    });
                } else {
                    alert("Geocode was not successful for the following reason: " + status);
                }
            });
        }
    }
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize(); codeAddress();">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>


Schau ich mir den Quellcode des Fensters der Entität Firma an, so sehe ich dir URL Zuweisung. Eigentlich sollte alles richtig sein.

Re: PLZ Umkreissuche

15. Januar 2010 16:28

So, ich habe den ganzen OnLoad code nun mal geändern auf das minimalste:

Code:
googleMapurl= "http://srv03/default.aspx?address=stuttgart";
alert (googleMapurl);
crmForm.all.IFRAME_GoogleMap.src = googleMapurl;



In den Eigenschaft des IFRAME ist als Standard Adresse "http://srv03/default.aspx?address=freiburg" hinterlegt. Deaktiviere ich das OnLoad Script, so wird mit in der Map Freiburg angezeigt.
Aktiviere ich das Script, so sollte eig. dynamisch die IFRAME Url umgestellt werden (was auch passiert, da im Quelltext der Seite die neue URL steht) aber es wir eben keine Karte agezeigt, sondern einfach nur ein graues Feld.

Re: PLZ Umkreissuche

15. Januar 2010 16:46

Hallo,

im welchen Quelltext der Seite steht die neue URL? Im CRM oder in der default.aspx?

Re: PLZ Umkreissuche

15. Januar 2010 16:56

Sorry, mein Fehler. Ich habe mich getäuscht. Im Quelltext der CRM Seite steht trotz der neuen Zuweisung immer noch die alte URL im IFRAME.
Aber angezeigt bekomme ich trotzdem nur ein graues Feld.

Re: PLZ Umkreissuche

15. Januar 2010 19:58

Hallo,

ich habe des jetzt einmal auf meinem Testsystem nachgestellt. Der graue Kasten wird angezeigt, weil anscheinend die goolge Api nicht funktioniert, wenn sie nicht im aktuellen Fenster läuft.
Probiere einmal folgendes aus:
Setze deinen Code aus dem OnLoad auch in das OnSave und öffne nach dem veröffentlichen wieder einen Datensatz. Wenn du dann auf deinen Reiter mit der Map gehst, wirst du wieder einen grauen Kasten sehen. Jetzt speichere einmal den Datensatz und voila, die Map wird mit den übergebenen Parametern angezeigt.

Die umgehen das in ihrem Beispiel, indem sie einfach den Tab mit der Map als erstes anzeigen. Das kannst du selbst sehr leicht ausprobieren. Schreibe einmal nach dem Code für die URL folgendes JavaScript crmForm.all.tab1Tab.click(); wenn die Map auf dem 2. Reiter ist. Wenn du es jetzt veröffentlichst, wird die Map funktionieren.

Re: PLZ Umkreissuche

18. Januar 2010 09:07

Vielen Dank Michael, du hast mir echt weitergeholfen.

Hast du noch eine Idee, die Karte anzuzeigen, ohne das ich beim Laden erst Speichern muss, oder das automatisch der Map-Reiter geladen wird?

Um den Umkreis anzuzeigen, habe ich auch etwas gefunden, aber leider gibt es dazu keinerlei Beschreibung, wie man dies macht. https://community.dynamics.com/blogs/cr ... 24204.aspx

Re: PLZ Umkreissuche

18. Januar 2010 09:17

Hallo,

da wirst du dich wohl in die google API einlesen müssen, die sollte das können.
Alternativ kannst du natürlich auch jemanden damit beauftragen, der für euch eine Umkreissuche realisiert.