Find Jobs
Hire Freelancers

Delphi World to Canvas map rendering

$30-250 USD

已完成
已发布将近 11 年前

$30-250 USD

货到付款
Hello! I have a rather simple project for all the smart brains on here. What I need is a translatable and zoomable implementation of a worldmap, with support for background texturing, written in Delphi. It should be very lightweight (not consume loads of CPU). It should have the ability to resize the map canvas if the window resizes. I have data about entities (location, rotation, scale). I also have a background texture. Map center should by default base on own position, which gets passed to map also (see below). By default I mean that map should be rendered with this point in middle, unless user decides to translate the viewpoint. The should be able to render the background (the actual "map"), and place entities on this background. This should then be : ---Translatable--- -The user must be able to use the mouse to drag around the contents, while the entities remain at their positions (like google maps). ---Zoomable--- -The user must be able to zoom into the map (nearer to the map texture), while the entities behave mathematically correct (a.k.a change their position on canvas in accordance of zoom level). This also is pretty much what google maps does. Zoom should be as smooth as possible, with many zoom levels. For development purposes, it's sufficient to draw squares of a color you choose for each added entity - this I will change later on. Please write the code that does the World to Canvas coordinate conversion into a private method, so I can easily use this method to add new items for rendering later on. The project should be written using the Graphics32 libary, as it is far faster then the native canvas implementation. You can find this library here : [login to view URL] As a summary, these methods should in some form be implemented : [login to view URL](canvasWidth,canvasHeight); //Set the render canvas size. This will be called on form resize event. [login to view URL](zoomLevel : integer); //This sets the zoom level. It should be as smooth as possible, with many zoom levels. [login to view URL] (unknown parameters) //This method gets called if user translates ("drags" around map. You'll probably want to use the onMouseUp/Down events?) [login to view URL] (x,y,z : single); //Location of self, map should base on this point. These coordinates are in the same coordinate system the entity ones are in (world coordinates). [login to view URL](x,y,z, rotation, scale : single); //Adds an entity to the map. Rotation is number between 1-128, scale 1.0 - 10.0. [login to view URL]( pic : TPicture); //This sets backround texture for map. Should be able to support all TPicture formats (JPEG, BMP, etc). backround can of course be larger then rendersize - map must cut it to fit the rendersize and zoomlevel then. [login to view URL](); //Renders a bitmap of size (canvasWidth,canvasHeight) internally. This implements doublebuffering. [login to view URL]( c : TCanvas); //Draws internally rendered image on this passed Canvas. The internal image was drawn by [login to view URL](); (see above). As you can see, please use the OOP paradigm for this project. If you can, please comment on the mathematical code - I tried this myself many times, but failed at synchronizing map texture and entity zoom levels. If you want to have my code as a reference, please say so. If you have any more questions, please do not hesitate to contact me and ask! I will be online most of the time. Cheers!
项目 ID: 4690271

关于此项目

2提案
远程项目
活跃11 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
颁发给:
用户头像
I think i can do it. Details - PMB.
$111 USD 在7天之内
0.0 (0条评论)
0.0
0.0
2威客以平均价$306 USD来参与此工作竞价
用户头像
Can do it no problem!
$500 USD 在30天之内
4.2 (5条评论)
4.2
4.2

关于客户

GERMANY的国旗
Berlin, Germany
4.9
5
付款方式已验证
会员自6月 7, 2011起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。