[PLUGIN] OpenStreetMap importer

We don’t have the material of the city ?

Please help. When I open project again after installing this plugin this error apears

I try it on 4.16.3 4.18.3 4.19.0

Thanks for any answers.

Hi all,

I’d like to know which version of Unreal Engine and Visual Studio I need to get it work.

I tried on launcher’s versions but it didn’t work. Should I use a source build? What version of Unreal Engine should I usse? And of Visual Studio?

Thanks for all.

Can you please post a compiled version of this plugin for ue4.19?

Does anyone knows wich version of Unreal Engine I need to use it?

It can’t be packaged though can it? I tried packaging it with a project and it complained about redistributables. Was it designed for demo/experimentation only?

Cool little plugin but UE4 can’t import it, apparently the opening and closing tags do not match. how do you solve this?

How do I use in version 4.19?

Same I would also like a compiled version for the latest UE4 version. Never been able to make this work from the start :(((

Ask your questions, Epic Games employee and UE4 Technical Director Mike Fricker => https://twitter.com/mike_fricker

That’s great to hear!

How did you end up fixing this error (first line is the error, the other three are just more info on that error)?


>\Plugins\StreetMap\Source\StreetMapRuntime\StreetMapSceneProxy.cpp(78): error C2280: 'FStreetMapVertexFactory::FStreetMapVertexFactory(void)': attempting to reference a deleted function

2>\plugins\streetmap\source\streetmapruntime\StreetMapSceneProxy.h(94): note: compiler has generated 'FStreetMapVertexFactory::FStreetMapVertexFactory' here

2>\plugins\streetmap\source\streetmapruntime\StreetMapSceneProxy.h(94): note: 'FStreetMapVertexFactory::FStreetMapVertexFactory(void)': function was implicitly deleted because a base class 'FLocalVertexFactory' has either no appropriate default constructor or overload resolution was ambiguous

2>\ue_4.19\engine\source\runtime\engine\public\LocalVertexFactory.h(21): note: see declaration of 'FLocalVertexFactory'

I was able to fix the first error for the abstract SIZE_T GetTypeHash() function, but this one has me a bit stumped so far…

Thanks!

Ah that might explain it, I’m trying to get it running on 4.19.2 instead. Guess I’m going to have to download 4.18 and see what they’ve changed, between this and the other error it seems like a fairly large change (they did update the rendering pipeline in 4.19, probably why). The only constructor for the FStreetMapVertexFactory in the plugin is a default one (no args), but the parent class in source the only constructor takes like 5 arguments that I have yet to figure out.

I’d like to get it working since many will be wanting a 4.19 (and beyond) version, if I can’t find the fix I guess I’ll have to summon .

Thanks

I’m in the same boat here. I will probably test in 4.18.3 but really looking to get it running in 4.19.2 and was rather surprised to see that an upversion is causing an error as aggressive as “cannot instantiate abstract class”. I’m looking into some crude but stable/nondestructive workarounds and I’ll be sure to report back if I have any success.

That first error for “cannot instantiate abstract class” actually isn’t as bad as it sounds, FPrimitiveSceneProxy just had a new function added to it that needs to be overriden.

To fix it, open up StreetMapSceneProxy.h and on line 153 (just below CanBeOccluded()) add:


virtual SIZE_T GetTypeHash() const override;

Next open up StreetMapSceneProxy.cpp and on line 191 (again below CanBeOccluded(), but order isn’t that important here) paste the following:



SIZE_T FStreetMapSceneProxy::GetTypeHash() const
{
    static size_t UniquePointer;
    return reinterpret_cast<size_t>(&UniquePointer);
}


That code is a copy from FStaticMeshSceneProxy, and seems to be the same code for all of the various F**SceneProxy classes.

The next error you come across after building again is the one that still has me stumped. The error is for line 78 in StreetMapSceneProxy.cpp and says

however if you go to line 78 there is no code on that line, and the function containing the error doesn’t make any reference to FStreetMapVertexFactory whatsoever.

It also has an error on line 94 in the same file, which once again has no code on that line (just a comment), this time it says this:

So the errors are in generated code and I don’t know where it’s being generated from.

FLocalVertexFactory doesn’t have a default (empty params) constructor which is likely why that error is coming up, instead it looks like this:



    FLocalVertexFactory(ERHIFeatureLevel::Type InFeatureLevel, const char* InDebugName, const FStaticMeshDataType* InStaticMeshDataType = nullptr)
        : FVertexFactory(InFeatureLevel)
        , ColorStreamIndex(-1)
        , DebugName(InDebugName)
    {
        StaticMeshDataType = InStaticMeshDataType ? InStaticMeshDataType : &Data;
        bSupportsManualVertexFetch = true;
    }


but where we would make the change to the proper constructor is not very clear. I guess it’s time to summon Mr Fricker.

@Dark-Veil Hey Mike, do you have any ideas on how we might go about fixing this error so we can compile the plugin for 4.19? Once I have this built I will submit a pull request for a 4.19 branch so others can download an error free version. Thanks!

Cross posting a link to the created on GitHub for this error:

I just made a pull request with 4.19 update & RenderProxy fixes (4.19 & RenderProxy Update by HoussineMehnik · Pull Request #45 · ue4plugins/StreetMap · GitHub)

Wow that’s awesome, you are an absolute legend @Mhousse1247! That took way more changes than I expected, would have taken me a long time to figure it all out. Just starting to learn the ins and outs of the rendering pipeline so it was a bit over my head.

So for now, anyone else looking to get it running in 4.19 fork a copy to your account from Mhousse1247’s repo here:

EDIT: Have you made many changes to your StreetMap repo? If they are improvements that’s not a problem, but if you customized it for your own project I can pull your update into my repo and post a link to it instead.

Thank you so much for taking the time to get it working man, really appreciate it! :slight_smile:

@ Yeah a lot of thing have changed in SceneProxy since 4.19 , but the process is more simple than before !

I don’t really work with it , I’ve added some features last year ( Asset drop , Collision support , Converting to StaticMesh, default material , some details customization …) but Mike has already merged them .

EDIT : Just here is the official thread [PLUGIN] OpenStreetMap importer - Game Development - Epic Developer Community Forums

@Mhousse1247 was kind enough to fix the issues preventing it from compiling and has added a PR to the repo. Until that gets accepted you can download it from his repo, here’s a link:

I am going to be merging all of the posts from a duplicate thread here momentarily, there’s more info contained in the posts on the other thread

EDIT: Done, see the posts above for more details

So I am currently using this plugin to make an accurate representation of a city, so therefore the cubes representing the buildings wouldn’t pass. Is there any way to apply a texture to the buildings? If possible, is there a way to apply different textures to individual buildings? Thanks in advance.

Just fixed a bad deprecated reference so it now works in 4.20-release it’s a pending pull request (#52):
In StreetMapComponent.cpp:
(remove) UNavigationSystem::UpdateComponentInNavOctree(*this);
(add) FNavigationSystem::UpdateComponentData(*this);