If you strip out the first 3 characters, how would you know which is the correct street?
General Request:
1. That we can customise the Citry & Street input list
I have the Iberia Map and I'd prefer that the City & Street names don't use accents. THen I can use a normal OSK. Can you convert all the accented characters in D3 to their english equivalent.
Also If you look at the screenshot below the Iberia map puts the street type (RD, ST, PL, in spanish it's CA, RU, PR, PL, TR, AU, AV, and a whole load of accented combinations as well) infront of the street name. So I need to know the street type before typing anything! Can you strip out the first 3 characters of the Street name, if the third character is a space? Maybe this should be in the settings so people can turn it on or off. I cannot use FD with the street shown like below:
![]()
Request for SDK:
In the FD SDK can you create a command that passes through our commands to the D3 SDK. I'd like to customise FD but I'd also like to get exposure to the lower-level D3 SDK so I can get all the features I want in the custom app. For instance. if you expose the DESTDLLLib.DestClass or DESTDLLLib.Dest class and make it public in FD SDK then I can write my own code for Address stuff and then you don't have to solve my problems above.
These are request, other than that I think FD is a very tidy piece of work with a elegent GUI. It's the Iberia map text data that is stopping me from using it, just now.
Cheers!
PS. Is there a setting to hide the blue bar down at the bottom of the Map?
If you strip out the first 3 characters, how would you know which is the correct street?
Ah, I see what you mean. You type 'RU' and it gives you the streets that begin as type 'RU' ...whereas, In my example, I typed 'Mayor' and it brings up all the streets named 'Mayor' regardless of the type. If I type 'RU' it brings up all the streets where the name begins with ru whatever the type!
EDIT: I'm a slow typer and you responded....Your first screenshot illustrates my problem. In the first example UI need to know if it's plaza Major or PR Major before I start typing, but in D3 you just type Major and figure it out after. I think it is just an issue with the Iberia map.
Your examples are using MM or D3 directly, I'm using FD. In FD if I start typing RU then the list goes to the first street of type RU. But in MM & D3 if you type in RU then it brings you to the streets that start the the name RU.
To solve it, D3 ignores the street type in the search text but displays them in the list. As you have it in your screenshot. You just typed in Major but the list shows the full address. Or If you want to keep it in, then change the D3 data so the street type is at the end then at the start.
If FD can expose some of the D3 SDK then I can play with it and customise this. Some objects I'd need in FD SDK:
D3.GetArrayOfCitiesID()
D3.GetCityNameFromID(i)
D3.GetArrayOfStreetsIDForCity(i)
D3.GetStreetNameFromID(j)
With these four methods exposed from D3 in FDSDK I can do the rest. And I'll post it here if people want it.
Yeah, I'm not sure if it's a bug in FD or (more likely) that the SDK from Destinator doesn't let you do it correctly :/ .Originally Posted by ruairi
I think it is poor formating of data in the Iberia map, not FD fault. I've been playing with D3 SDK directly and the text data is very untidy. It's just that in the D3 app they've put in a cludge to fix the search.
Are the other maps (UK/USA) the same in the sense that the street type appears before the street name or is this just an issue with Spain/Portugal?
Hi Ruairi.. I will have a play with the street list for you, shouldnt be too hard to add a simple mid(3,1)=" " thing... or whatever the correct syntax is. This will sort the street names out for you.. I'm going on hols for a week soon, so if I dont get anything done in the next day or so.. dont worry.. I will be just drinking beers somewhere looking at all the birds through some very dark shades so the wife dont catch me.. thinking of improvements I can do with FD whilst i'm there (NOT) Do you still want the CA / RU stuff to still appear in the list ? or just will the street names do ?
CdR
you still nedd RU/CA stuff, otherwise you wouldn't know which street to choose...Originally Posted by CdRsKuLL
Market Avenue
Market Place
Market Road
Market Square
Market Street
how about just adding it ti the end ? so reversing them, would this work ?
CdR
Cheers CDR, happy holiday! I suppose your wife is going to be wearing similar dark glasses?
As Laidback says I think it is still important to see the type in the list. I don't mind if it's at the start or the end. In plain D3 it keeps it at the front and changes the color of the background, I gues it's using some kind datagrid instead of a ListBox.
This is something I was playing with in VB.Net (but I guess you're using VB6?)
EDIT: I've chenged it to use arrays rather than collections, collections get fowled up with duplicates once they are converted to remove accents in the city name accents.
Code:Blablabla.... Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click D3.CreateDestinatorWindow(1) D3.GetDestinatorWindowHandle() Dim temp As cityType cities = D3.GetArrayOfCitiesID() ReDim cityList(cities.ItemCount) For i = 0 To cities.ItemCount - 1 temp = New cityType(D3.GetCityNameFromID(cities.Item(i)), cities.Item(i)) cityList(i) = temp ListBox1.Items.Add(temp.displayName) Next 'ListBox1.Sorted = True End Sub Dim StreetList() As streetType Dim cityList() As cityType Public Function getKeyArray(ByVal Array() As Object, ByVal key As String) As Object Dim item As Object For Each item In Array Try If item.displayname = key Then Return item End If Catch Return Nothing End Try Next End Function Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged ListBox2.Items.Clear() Dim city As cityType = getKeyArray(cityList, ListBox1.Items(ListBox1.SelectedIndex)) streets = D3.GetArrayOfStreetsIDForCity(city.id) Dim temp As streetType ReDim StreetList(streets.ItemCount) For i = 0 To streets.ItemCount - 1 temp = New streetType(D3.GetStreetNameFromID(streets.Item(i)), streets.Item(i)) StreetList(i) = temp ListBox2.Items.Add(temp.displayName) Next ListBox2.Sorted = True End Sub Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged Dim temp As streetType = getKeyArray(StreetList, ListBox2.Items(ListBox2.SelectedIndex)) If (temp.type Is Nothing) Then MsgBox(temp.displayName & " " & temp.id) Else MsgBox(temp.type & " " & temp.name & " " & temp.id) End If End Sub End Class Public Class cityType Inherits streetType Public Sub New(ByVal city As String, ByVal id As Integer) MyBase.New(city, id) End Sub End Class Public Class streetType Public displayName, name, type, fullname As String Public id As Integer Public Sub New(ByVal street As String, ByVal id As Integer) Me.fullname = street Me.id = id If (street.IndexOf(" ") = 2) Then Me.type = street.Substring(0, 2) Me.name = street.Substring(3) Me.displayName = ReplaceAccents(street.Substring(3) & " " & street.Substring(0, 2)) Else Me.displayName = ReplaceAccents(street) End If End Sub Public Function ReplaceAccents(ByVal input As String) As String input = input.Replace("À", "A") input = input.Replace("Á", "A") input = input.Replace("Â", "A") input = input.Replace("Ã", "A") input = input.Replace("Ä", "A") input = input.Replace("â", "a") input = input.Replace("ã", "a") input = input.Replace("ä", "a") input = input.Replace("à", "a") input = input.Replace("á", "a") input = input.Replace("È", "E") input = input.Replace("É", "E") input = input.Replace("Ê", "E") input = input.Replace("Ë", "E") input = input.Replace("ê", "e") input = input.Replace("ë", "e") input = input.Replace("è", "e") input = input.Replace("é", "e") input = input.Replace("Ì", "I") input = input.Replace("Í", "I") input = input.Replace("Î", "I") input = input.Replace("Ï", "I") input = input.Replace("î", "i") input = input.Replace("ï", "i") input = input.Replace("ì", "i") input = input.Replace("í", "i") input = input.Replace("Ò", "O") input = input.Replace("Ó", "O") input = input.Replace("Ô", "O") input = input.Replace("Õ", "O") input = input.Replace("Ö", "O") input = input.Replace("ô", "o") input = input.Replace("õ", "o") input = input.Replace("ö", "o") input = input.Replace("ò", "o") input = input.Replace("ó", "o") input = input.Replace("Ù", "U") input = input.Replace("Ú", "U") input = input.Replace("Û", "U") input = input.Replace("Ü", "U") input = input.Replace("û", "u") input = input.Replace("ü", "u") input = input.Replace("ù", "u") input = input.Replace("ú", "u") input = input.Replace("Ý", "Y") input = input.Replace("ý", "y") input = input.Replace("ñ", "n") Return input End Function End Class
Bookmarks